remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remix-project/remix-debug/compilation.json

6416 lines
217 KiB

6 years ago
{
"data": {
"contracts": {
"browser/ballot.sol": {
"Ballot": {
"abi": [{
"constant": false,
"inputs": [{
"name": "to",
"type": "address"
}],
"name": "delegate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"constant": false,
"inputs": [{
"name": "toVoter",
"type": "address"
}],
"name": "giveRightToVote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"inputs": [{
"name": "_numProposals",
"type": "uint8"
}],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}, {
"constant": false,
"inputs": [{
"name": "toProposal",
"type": "uint8"
}],
"name": "vote",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}, {
"constant": true,
"inputs": [],
"name": "winningProposal",
"outputs": [{
"name": "_winningProposal",
"type": "uint8"
}],
"payable": false,
"stateMutability": "view",
"type": "function"
}],
"devdoc": {
"methods": {}
},
"evm": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50604051602080610487833981016040908152905160008054600160a060020a0319163317808255600160a060020a03168152600160208190529290209190915560ff8116610060600282610067565b50506100b1565b81548183558181111561008b5760008381526020902061008b918101908301610090565b505050565b6100ae91905b808211156100aa5760008155600101610096565b5090565b90565b6103c7806100c06000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635c19a95c8114610066578063609ff1bd146100895780639e7b8d61146100b4578063b3f98adc146100d5575b600080fd5b34801561007257600080fd5b50610087600160a060020a03600435166100f0565b005b34801561009557600080fd5b5061009e610250565b6040805160ff9092168252519081900360200190f35b3480156100c057600080fd5b50610087600160a060020a03600435166102bb565b3480156100e157600080fd5b5061008760ff6004351661031b565b33600090815260016020819052604082209081015490919060ff16156101155761024b565b5b600160a060020a0383811660009081526001602081905260409091200154620100009004161580159061016d5750600160a060020a0383811660009081526001602081905260409091200154620100009004163314155b1561019f57600160a060020a039283166000908152600160208190526040909120015462010000900490921691610116565b600160a060020a0383163314156101b55761024b565b506001818101805460ff1916821775ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0386169081029190911790915560009081526020829052604090209081015460ff16156102435781546001820154600280549091610100900460ff1690811061022c57fe5b60009182526020909120018054909101905561024b565b815481540181555b505050565b600080805b60025460ff821610156102b6578160028260ff1681548110151561027557fe5b906000526020600020016000015411156102ae576002805460ff831690811061029a57fe5b906000526020600020016000015491508092505b600101610255565b505090565b600054600160a060020a0316331415806102f15750600160a060020a0381166000908152600160208190526040909120015460ff165b156102fb57610318565b600160a060020a0381166000908152600160208190526040909120555b50565b3360009081526001602081905260409091209081015460ff1680610344575060025460ff831610155b1561034e57610397565b6001818101805460ff191690911761ff00191661010060ff85169081029190911790915581546002805491929091811061038457fe5b6000918252602090912001805490910190555b50505600a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x487 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP1 DUP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP3 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0xFF DUP2 AND PUSH2 0x60 PUSH1 0x2 DUP3 PUSH2 0x67 JUMP JUMPDEST POP POP PUSH2 0xB1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x8B SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x90 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x96 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x3C7 DUP1 PUSH2 0xC0 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5C19A95C DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xB3F98ADC EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH2 0x250 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x31B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x115 JUMPI PUSH2 0x24B JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x16D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x19F JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV SWAP1 SWAP3 AND SWAP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND CALLER EQ ISZERO PUSH2 0x1B5 JUMPI PUSH2 0x24B JUMP JUMPDEST POP PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 OR PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x243 JUMPI DUP2 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE PUSH2 0x24B JUMP JUMPDEST DUP2 SLOAD DUP2 SLOAD ADD DUP2 SSTORE JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF DUP3 AND LT ISZERO PUSH2 0x2B6 JUMPI DUP2 PUSH1 0x2 DUP3 PUSH1 0xFF AND
"sourceMap": "24:2138:0:-;;;373:167;8:9:-1;5:2;;;30:1;27;20:12;5:2;373:167:0;;;;;;;;;;;;;;;;427:11;:24;;-1:-1:-1;;;;;;427:24:0;441:10;427:24;;;;-1:-1:-1;;;;;468:11:0;461:19;;427:24;373:167;461:19;;;;;;:30;;;;501:32;;;;:9;:32;;:::i;:::-;;373:167;24:2138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635c19a95c8114610066578063609ff1bd146100895780639e7b8d61146100b4578063b3f98adc146100d5575b600080fd5b34801561007257600080fd5b50610087600160a060020a03600435166100f0565b005b34801561009557600080fd5b5061009e610250565b6040805160ff9092168252519081900360200190f35b3480156100c057600080fd5b50610087600160a060020a03600435166102bb565b3480156100e157600080fd5b5061008760ff6004351661031b565b33600090815260016020819052604082209081015490919060ff16156101155761024b565b5b600160a060020a0383811660009081526001602081905260409091200154620100009004161580159061016d5750600160a060020a0383811660009081526001602081905260409091200154620100009004163314155b1561019f57600160a060020a039283166000908152600160208190526040909120015462010000900490921691610116565b600160a060020a0383163314156101b55761024b565b506001818101805460ff1916821775ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0386169081029190911790915560009081526020829052604090209081015460ff16156102435781546001820154600280549091610100900460ff1690811061022c57fe5b60009182526020909120018054909101905561024b565b815481540181555b505050565b600080805b60025460ff821610156102b6578160028260ff1681548110151561027557fe5b906000526020600020016000015411156102ae576002805460ff831690811061029a57fe5b906000526020600020016000015491508092505b600101610255565b505090565b600054600160a060020a0316331415806102f15750600160a060020a0381166000908152600160208190526040909120015460ff165b156102fb57610318565b600160a060020a0381166000908152600160208190526040909120555b50565b3360009081526001602081905260409091209081015460ff1680610344575060025460ff831610155b1561034e57610397565b6001818101805460ff191690911761ff00191661010060ff85169081029190911790915581546002805491929091811061038457fe5b6000918252602090912001805490910190555b50505600a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5C19A95C DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xB3F98ADC EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH2 0x250 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x31B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x115 JUMPI PUSH2 0x24B JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x16D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x19F JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH3 0x10000 SWAP1 DIV SWAP1 SWAP3 AND SWAP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND CALLER EQ ISZERO PUSH2 0x1B5 JUMPI PUSH2 0x24B JUMP JUMPDEST POP PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 OR PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x243 JUMPI DUP2 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP1 SWAP2 ADD SWAP1 SSTORE PUSH2 0x24B JUMP JUMPDEST DUP2 SLOAD DUP2 SLOAD ADD DUP2 SSTORE JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF DUP3 AND LT ISZERO PUSH2 0x2B6 JUMPI DUP2 PUSH1 0x2 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD GT ISZERO PUSH2 0x2AE JUMPI PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF DUP4 AND SWAP1 DUP2 LT PUSH2 0x29A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x255 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ ISZERO DUP1 PUSH2 0x2F1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2FB JUMPI PUSH2 0x318 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1
"sourceMap": "24:2138:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;867:577;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;867:577:0;-1:-1:-1;;;;;867:577:0;;;;;;;1796:364;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1796:364:0;;;;;;;;;;;;;;;;;;;;;;;650:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;650:164:0;-1:-1:-1;;;;;650:164:0;;;;;1504:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1504:286:0;;;;;;;867:577;944:10;914:20;937:18;;;:6;:18;;;;;;;990:12;;;;937:18;;914:20;990:12;;986:25;;;1004:7;;986:25;1020:115;-1:-1:-1;;;;;1027:10:0;;;1058:1;1027:10;;;:6;:10;;;;;;;;:19;;;;;;:33;;;;:70;;-1:-1:-1;;;;;;1064:10:0;;;;;;;:6;:10;;;;;;;;:19;;;;;;1087:10;1064:33;;1027:70;1020:115;;;-1:-1:-1;;;;;1116:10:0;;;;;;;:6;:10;;;;;;;;:19;;;;;;;;;1020:115;;;-1:-1:-1;;;;;1149:16:0;;1155:10;1149:16;1145:29;;;1167:7;;1145:29;-1:-1:-1;1198:4:0;1183:12;;;:19;;-1:-1:-1;;1183:19:0;;;-1:-1:-1;;1212:20:0;;-1:-1:-1;;;;;1212:20:0;;;;;;;;;;;;-1:-1:-1;1269:10:0;;;;;;;;;;1293:16;;;;1183:19;1293:16;1289:148;;;1363:13;;1333:15;;;;1323:9;:26;;:9;;1333:15;;;;;;1323:26;;;;;;;;;;;;;;;:53;;;;;;;1289:148;;;1424:13;;1403:34;;;;;1289:148;867:577;;;:::o;1796:364::-;1848:22;;;1920:234;1948:9;:16;1941:23;;;;1920:234;;;2018:16;1990:9;2000:4;1990:15;;;;;;;;;;;;;;;;;;;:25;;;:44;1986:168;;;2073:9;:15;;;;;;;;;;;;;;;;;;;:25;;;2054:44;;2135:4;2116:23;;1986:168;1966:6;;1920:234;;;1796:364;;;:::o;650:164::-;727:11;;-1:-1:-1;;;;;727:11:0;713:10;:25;;;:50;;-1:-1:-1;;;;;;742:15:0;;;;;;:6;:15;;;;;;;;:21;;;;713:50;709:63;;;765:7;;709:63;-1:-1:-1;;;;;781:15:0;;;;;;806:1;781:15;;;;;;;;:26;650:164;;:::o;1504:286::-;1583:10;1553:20;1576:18;;;:6;:18;;;;;;;;1608:12;;;;;;;:46;;-1:-1:-1;1638:9:0;:16;1624:30;;;;;1608:46;1604:59;;;1656:7;;1604:59;1687:4;1672:12;;;:19;;-1:-1:-1;;1672:19:0;;;;-1:-1:-1;;1701:24:0;1672:19;;1701:24;;;;;;;;;;;;1770:13;;1735:9;:21;;1770:13;;1735:9;;:21;;;;;;;;;;;;;;;:48;;;;;;;1504:286;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "193400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"delegate(address)": "infinite",
"giveRightToVote(address)": "21101",
"vote(uint8)": "41761",
"winningProposal()": "infinite"
}
},
"legacyAssembly": {
".code": [{
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "80"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "40"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 373,
"end": 540,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": 373,
"end": 540,
"name": "POP"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "40"
}, {
"begin": 373,
"end": 540,
"name": "MLOAD"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "20"
}, {
"begin": 373,
"end": 540,
"name": "DUP1"
}, {
"begin": 373,
"end": 540,
"name": "PUSHSIZE"
}, {
"begin": 373,
"end": 540,
"name": "DUP4"
}, {
"begin": 373,
"end": 540,
"name": "CODECOPY"
}, {
"begin": 373,
"end": 540,
"name": "DUP2"
}, {
"begin": 373,
"end": 540,
"name": "ADD"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "40"
}, {
"begin": 373,
"end": 540,
"name": "SWAP1"
}, {
"begin": 373,
"end": 540,
"name": "DUP2"
}, {
"begin": 373,
"end": 540,
"name": "MSTORE"
}, {
"begin": 373,
"end": 540,
"name": "SWAP1"
}, {
"begin": 373,
"end": 540,
"name": "MLOAD"
}, {
"begin": 427,
"end": 438,
"name": "PUSH",
"value": "0"
}, {
"begin": 427,
"end": 451,
"name": "DUP1"
}, {
"begin": 427,
"end": 451,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 427,
"end": 451,
"name": "AND"
}, {
"begin": 441,
"end": 451,
"name": "CALLER"
}, {
"begin": 427,
"end": 451,
"name": "OR"
}, {
"begin": 427,
"end": 451,
"name": "DUP1"
}, {
"begin": 427,
"end": 451,
"name": "DUP3"
}, {
"begin": 427,
"end": 451,
"name": "SSTORE"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 468,
"end": 479,
"name": "AND"
}, {
"begin": 461,
"end": 480,
"name": "DUP2"
}, {
"begin": 461,
"end": 480,
"name": "MSTORE"
}, {
"begin": 427,
"end": 451,
"name": "PUSH",
"value": "1"
}, {
"begin": 373,
"end": 540,
"name": "PUSH",
"value": "20"
}, {
"begin": 461,
"end": 480,
"name": "DUP2"
}, {
"begin": 461,
"end": 480,
"name": "SWAP1"
}, {
"begin": 461,
"end": 480,
"name": "MSTORE"
}, {
"begin": 461,
"end": 480,
"name": "SWAP3"
}, {
"begin": 461,
"end": 480,
"name": "SWAP1"
}, {
"begin": 461,
"end": 480,
"name": "KECCAK256"
}, {
"begin": 461,
"end": 491,
"name": "SWAP2"
}, {
"begin": 461,
"end": 491,
"name": "SWAP1"
}, {
"begin": 461,
"end": 491,
"name": "SWAP2"
}, {
"begin": 461,
"end": 491,
"name": "SSTORE"
}, {
"begin": 501,
"end": 533,
"name": "PUSH",
"value": "FF"
}, {
"begin": 501,
"end": 533,
"name": "DUP2"
}, {
"begin": 501,
"end": 533,
"name": "AND"
}, {
"begin": 501,
"end": 533,
"name": "PUSH [tag]",
"value": "4"
}, {
"begin": 501,
"end": 510,
"name": "PUSH",
"value": "2"
}, {
"begin": 501,
"end": 533,
"name": "DUP3"
}, {
"begin": 501,
"end": 533,
"name": "PUSH [tag]",
"value": "5"
}, {
"begin": 501,
"end": 533,
"name": "JUMP",
"value": "[in]"
}, {
"begin": 501,
"end": 533,
"name": "tag",
"value": "4"
}, {
"begin": 501,
"end": 533,
"name": "JUMPDEST"
}, {
"begin": 501,
"end": 533,
"name": "POP"
}, {
"begin": 373,
"end": 540,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "6"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "5"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "SLOAD"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "SSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "GT"
}, {
"begin": 24,
"end": 2162,
"name": "ISZERO"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "20"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "KECCAK256"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP2"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "DUP4"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "9"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[in]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "8"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "9"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "10"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP2"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "11"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "DUP3"
}, {
"begin": 24,
"end": 2162,
"name": "GT"
}, {
"begin": 24,
"end": 2162,
"name": "ISZERO"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "12"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "SSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "ADD"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "11"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "12"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "POP"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "10"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "SWAP1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "6"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "CODECOPY"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "RETURN"
}],
".data": {
"0": {
".auxdata": "a165627a7a72305820ce66bb0ee0898d1afc8d56202dd09955892767cfba6bcf0ddb23181288192c450029",
".code": [{
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "80"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "40"
}, {
"begin": 24,
"end": 2162,
"name": "MSTORE"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "4"
}, {
"begin": 24,
"end": 2162,
"name": "CALLDATASIZE"
}, {
"begin": 24,
"end": 2162,
"name": "LT"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "FFFFFFFF"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "100000000000000000000000000000000000000000000000000000000"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "CALLDATALOAD"
}, {
"begin": 24,
"end": 2162,
"name": "DIV"
}, {
"begin": 24,
"end": 2162,
"name": "AND"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "5C19A95C"
}, {
"begin": 24,
"end": 2162,
"name": "DUP2"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "2"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "609FF1BD"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "3"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "9E7B8D61"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "4"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "B3F98ADC"
}, {
"begin": 24,
"end": 2162,
"name": "EQ"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH [tag]",
"value": "5"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPI"
}, {
"begin": 24,
"end": 2162,
"name": "tag",
"value": "1"
}, {
"begin": 24,
"end": 2162,
"name": "JUMPDEST"
}, {
"begin": 24,
"end": 2162,
"name": "PUSH",
"value": "0"
}, {
"begin": 24,
"end": 2162,
"name": "DUP1"
}, {
"begin": 24,
"end": 2162,
"name": "REVERT"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "2"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "6"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "6"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH",
"value": "4"
}, {
"begin": 867,
"end": 1444,
"name": "CALLDATALOAD"
}, {
"begin": 867,
"end": 1444,
"name": "AND"
}, {
"begin": 867,
"end": 1444,
"name": "PUSH [tag]",
"value": "8"
}, {
"begin": 867,
"end": 1444,
"name": "JUMP"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "7"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "STOP"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "3"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "9"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "9"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH [tag]",
"value": "10"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH [tag]",
"value": "11"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMP"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "10"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "40"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP1"
}, {
"begin": 1796,
"end": 2160,
"name": "MLOAD"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP3"
}, {
"begin": 1796,
"end": 2160,
"name": "AND"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP3"
}, {
"begin": 1796,
"end": 2160,
"name": "MSTORE"
}, {
"begin": 1796,
"end": 2160,
"name": "MLOAD"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "DUP2"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "SUB"
}, {
"begin": 1796,
"end": 2160,
"name": "PUSH",
"value": "20"
}, {
"begin": 1796,
"end": 2160,
"name": "ADD"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "RETURN"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "4"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 650,
"end": 814,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "12"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "12"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 650,
"end": 814,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 650,
"end": 814,
"name": "PUSH",
"value": "4"
}, {
"begin": 650,
"end": 814,
"name": "CALLDATALOAD"
}, {
"begin": 650,
"end": 814,
"name": "AND"
}, {
"begin": 650,
"end": 814,
"name": "PUSH [tag]",
"value": "14"
}, {
"begin": 650,
"end": 814,
"name": "JUMP"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "5"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1504,
"end": 1790,
"name": "CALLVALUE"
}, {
"begin": 8,
"end": 17,
"name": "DUP1"
}, {
"begin": 5,
"end": 7,
"name": "ISZERO"
}, {
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "15"
}, {
"begin": 5,
"end": 7,
"name": "JUMPI"
}, {
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
}, {
"begin": 27,
"end": 28,
"name": "DUP1"
}, {
"begin": 20,
"end": 32,
"name": "REVERT"
}, {
"begin": 5,
"end": 7,
"name": "tag",
"value": "15"
}, {
"begin": 5,
"end": 7,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH [tag]",
"value": "7"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH",
"value": "4"
}, {
"begin": 1504,
"end": 1790,
"name": "CALLDATALOAD"
}, {
"begin": 1504,
"end": 1790,
"name": "AND"
}, {
"begin": 1504,
"end": 1790,
"name": "PUSH [tag]",
"value": "17"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMP"
}, {
"begin": 867,
"end": 1444,
"name": "tag",
"value": "8"
}, {
"begin": 867,
"end": 1444,
"name": "JUMPDEST"
}, {
"begin": 944,
"end": 954,
"name": "CALLER"
}, {
"begin": 914,
"end": 934,
"name": "PUSH",
"value": "0"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "DUP2"
}, {
"begin": 937,
"end": 955,
"name": "MSTORE"
}, {
"begin": 937,
"end": 943,
"name": "PUSH",
"value": "1"
}, {
"begin": 937,
"end": 955,
"name": "PUSH",
"value": "20"
}, {
"begin": 937,
"end": 955,
"name": "DUP2"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "MSTORE"
}, {
"begin": 937,
"end": 955,
"name": "PUSH",
"value": "40"
}, {
"begin": 937,
"end": 955,
"name": "DUP3"
}, {
"begin": 937,
"end": 955,
"name": "KECCAK256"
}, {
"begin": 990,
"end": 1002,
"name": "SWAP1"
}, {
"begin": 990,
"end": 1002,
"name": "DUP2"
}, {
"begin": 990,
"end": 1002,
"name": "ADD"
}, {
"begin": 990,
"end": 1002,
"name": "SLOAD"
}, {
"begin": 937,
"end": 955,
"name": "SWAP1"
}, {
"begin": 937,
"end": 955,
"name": "SWAP2"
}, {
"begin": 914,
"end": 934,
"name": "SWAP1"
}, {
"begin": 990,
"end": 1002,
"name": "PUSH",
"value": "FF"
}, {
"begin": 990,
"end": 1002,
"name": "AND"
}, {
"begin": 986,
"end": 1011,
"name": "ISZERO"
}, {
"begin": 986,
"end": 1011,
"name": "PUSH [tag]",
"value": "19"
}, {
"begin": 986,
"end": 1011,
"name": "JUMPI"
}, {
"begin": 1004,
"end": 1011,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1004,
"end": 1011,
"name": "JUMP"
}, {
"begin": 986,
"end": 1011,
"name": "tag",
"value": "19"
}, {
"begin": 986,
"end": 1011,
"name": "JUMPDEST"
}, {
"begin": 1020,
"end": 1135,
"name": "tag",
"value": "20"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP4"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "AND"
}, {
"begin": 1058,
"end": 1059,
"name": "PUSH",
"value": "0"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "MSTORE"
}, {
"begin": 1027,
"end": 1033,
"name": "PUSH",
"value": "1"
}, {
"begin": 1027,
"end": 1037,
"name": "PUSH",
"value": "20"
}, {
"begin": 1027,
"end": 1037,
"name": "DUP2"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "MSTORE"
}, {
"begin": 1027,
"end": 1037,
"name": "PUSH",
"value": "40"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1037,
"name": "SWAP2"
}, {
"begin": 1027,
"end": 1037,
"name": "KECCAK256"
}, {
"begin": 1027,
"end": 1046,
"name": "ADD"
}, {
"begin": 1027,
"end": 1046,
"name": "SLOAD"
}, {
"begin": 1027,
"end": 1046,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1027,
"end": 1046,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1046,
"name": "DIV"
}, {
"begin": 1027,
"end": 1046,
"name": "AND"
}, {
"begin": 1027,
"end": 1060,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1060,
"name": "DUP1"
}, {
"begin": 1027,
"end": 1060,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1060,
"name": "SWAP1"
}, {
"begin": 1027,
"end": 1097,
"name": "PUSH [tag]",
"value": "22"
}, {
"begin": 1027,
"end": 1097,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP4"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "AND"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "0"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "MSTORE"
}, {
"begin": 1064,
"end": 1070,
"name": "PUSH",
"value": "1"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "20"
}, {
"begin": 1064,
"end": 1074,
"name": "DUP2"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "MSTORE"
}, {
"begin": 1064,
"end": 1074,
"name": "PUSH",
"value": "40"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1074,
"name": "SWAP2"
}, {
"begin": 1064,
"end": 1074,
"name": "KECCAK256"
}, {
"begin": 1064,
"end": 1083,
"name": "ADD"
}, {
"begin": 1064,
"end": 1083,
"name": "SLOAD"
}, {
"begin": 1064,
"end": 1083,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1064,
"end": 1083,
"name": "SWAP1"
}, {
"begin": 1064,
"end": 1083,
"name": "DIV"
}, {
"begin": 1064,
"end": 1083,
"name": "AND"
}, {
"begin": 1087,
"end": 1097,
"name": "CALLER"
}, {
"begin": 1064,
"end": 1097,
"name": "EQ"
}, {
"begin": 1064,
"end": 1097,
"name": "ISZERO"
}, {
"begin": 1027,
"end": 1097,
"name": "tag",
"value": "22"
}, {
"begin": 1027,
"end": 1097,
"name": "JUMPDEST"
}, {
"begin": 1020,
"end": 1135,
"name": "ISZERO"
}, {
"begin": 1020,
"end": 1135,
"name": "PUSH [tag]",
"value": "21"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP3"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP4"
}, {
"begin": 1116,
"end": 1126,
"name": "AND"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "0"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP2"
}, {
"begin": 1116,
"end": 1126,
"name": "MSTORE"
}, {
"begin": 1116,
"end": 1122,
"name": "PUSH",
"value": "1"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "20"
}, {
"begin": 1116,
"end": 1126,
"name": "DUP2"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "MSTORE"
}, {
"begin": 1116,
"end": 1126,
"name": "PUSH",
"value": "40"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1126,
"name": "SWAP2"
}, {
"begin": 1116,
"end": 1126,
"name": "KECCAK256"
}, {
"begin": 1116,
"end": 1135,
"name": "ADD"
}, {
"begin": 1116,
"end": 1135,
"name": "SLOAD"
}, {
"begin": 1116,
"end": 1135,
"name": "PUSH",
"value": "10000"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1135,
"name": "DIV"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP1"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP3"
}, {
"begin": 1116,
"end": 1135,
"name": "AND"
}, {
"begin": 1116,
"end": 1135,
"name": "SWAP2"
}, {
"begin": 1020,
"end": 1135,
"name": "PUSH [tag]",
"value": "20"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMP"
}, {
"begin": 1020,
"end": 1135,
"name": "tag",
"value": "21"
}, {
"begin": 1020,
"end": 1135,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1149,
"end": 1165,
"name": "DUP4"
}, {
"begin": 1149,
"end": 1165,
"name": "AND"
}, {
"begin": 1155,
"end": 1165,
"name": "CALLER"
}, {
"begin": 1149,
"end": 1165,
"name": "EQ"
}, {
"begin": 1145,
"end": 1174,
"name": "ISZERO"
}, {
"begin": 1145,
"end": 1174,
"name": "PUSH [tag]",
"value": "23"
}, {
"begin": 1145,
"end": 1174,
"name": "JUMPI"
}, {
"begin": 1167,
"end": 1174,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1167,
"end": 1174,
"name": "JUMP"
}, {
"begin": 1145,
"end": 1174,
"name": "tag",
"value": "23"
}, {
"begin": 1145,
"end": 1174,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1198,
"end": 1202,
"name": "PUSH",
"value": "1"
}, {
"begin": 1183,
"end": 1195,
"name": "DUP2"
}, {
"begin": 1183,
"end": 1195,
"name": "DUP2"
}, {
"begin": 1183,
"end": 1195,
"name": "ADD"
}, {
"begin": 1183,
"end": 1202,
"name": "DUP1"
}, {
"begin": 1183,
"end": 1202,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1183,
"end": 1202,
"name": "AND"
}, {
"begin": 1183,
"end": 1202,
"name": "DUP3"
}, {
"begin": 1183,
"end": 1202,
"name": "OR"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1212,
"end": 1232,
"name": "AND"
}, {
"begin": 1212,
"end": 1232,
"name": "PUSH",
"value": "10000"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 1212,
"end": 1232,
"name": "DUP7"
}, {
"begin": 1212,
"end": 1232,
"name": "AND"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "DUP2"
}, {
"begin": 1212,
"end": 1232,
"name": "MUL"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "OR"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP1"
}, {
"begin": 1212,
"end": 1232,
"name": "SWAP2"
}, {
"begin": 1212,
"end": 1232,
"name": "SSTORE"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "0"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "DUP2"
}, {
"begin": 1269,
"end": 1279,
"name": "MSTORE"
}, {
"begin": 1269,
"end": 1279,
"name": "PUSH",
"value": "20"
}, {
"begin": 1269,
"end": 1279,
"name": "DUP3"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "MSTORE"
}, {
"begin": 1269,
"end": 1279,
"name": "PUSH",
"value": "40"
}, {
"begin": 1269,
"end": 1279,
"name": "SWAP1"
}, {
"begin": 1269,
"end": 1279,
"name": "KECCAK256"
}, {
"begin": 1293,
"end": 1309,
"name": "SWAP1"
}, {
"begin": 1293,
"end": 1309,
"name": "DUP2"
}, {
"begin": 1293,
"end": 1309,
"name": "ADD"
}, {
"begin": 1293,
"end": 1309,
"name": "SLOAD"
}, {
"begin": 1183,
"end": 1202,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1293,
"end": 1309,
"name": "AND"
}, {
"begin": 1289,
"end": 1437,
"name": "ISZERO"
}, {
"begin": 1289,
"end": 1437,
"name": "PUSH [tag]",
"value": "24"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPI"
}, {
"begin": 1363,
"end": 1376,
"name": "DUP2"
}, {
"begin": 1363,
"end": 1376,
"name": "SLOAD"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "1"
}, {
"begin": 1333,
"end": 1348,
"name": "DUP3"
}, {
"begin": 1333,
"end": 1348,
"name": "ADD"
}, {
"begin": 1333,
"end": 1348,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1332,
"name": "PUSH",
"value": "2"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP1"
}, {
"begin": 1323,
"end": 1349,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1332,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1332,
"name": "SWAP2"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "100"
}, {
"begin": 1333,
"end": 1348,
"name": "SWAP1"
}, {
"begin": 1333,
"end": 1348,
"name": "DIV"
}, {
"begin": 1333,
"end": 1348,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1333,
"end": 1348,
"name": "AND"
}, {
"begin": 1333,
"end": 1348,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP2"
}, {
"begin": 1323,
"end": 1349,
"name": "LT"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH [tag]",
"value": "25"
}, {
"begin": 1323,
"end": 1349,
"name": "JUMPI"
}, {
"begin": 1323,
"end": 1349,
"name": "INVALID"
}, {
"begin": 1323,
"end": 1349,
"name": "tag",
"value": "25"
}, {
"begin": 1323,
"end": 1349,
"name": "JUMPDEST"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH",
"value": "0"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1349,
"name": "DUP3"
}, {
"begin": 1323,
"end": 1349,
"name": "MSTORE"
}, {
"begin": 1323,
"end": 1349,
"name": "PUSH",
"value": "20"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1349,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1349,
"name": "KECCAK256"
}, {
"begin": 1323,
"end": 1349,
"name": "ADD"
}, {
"begin": 1323,
"end": 1376,
"name": "DUP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SLOAD"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP2"
}, {
"begin": 1323,
"end": 1376,
"name": "ADD"
}, {
"begin": 1323,
"end": 1376,
"name": "SWAP1"
}, {
"begin": 1323,
"end": 1376,
"name": "SSTORE"
}, {
"begin": 1289,
"end": 1437,
"name": "PUSH [tag]",
"value": "27"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMP"
}, {
"begin": 1289,
"end": 1437,
"name": "tag",
"value": "24"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPDEST"
}, {
"begin": 1424,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1424,
"end": 1437,
"name": "SLOAD"
}, {
"begin": 1403,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1403,
"end": 1437,
"name": "SLOAD"
}, {
"begin": 1403,
"end": 1437,
"name": "ADD"
}, {
"begin": 1403,
"end": 1437,
"name": "DUP2"
}, {
"begin": 1403,
"end": 1437,
"name": "SSTORE"
}, {
"begin": 1289,
"end": 1437,
"name": "tag",
"value": "27"
}, {
"begin": 1289,
"end": 1437,
"name": "JUMPDEST"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "POP"
}, {
"begin": 867,
"end": 1444,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 1796,
"end": 2160,
"name": "tag",
"value": "11"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMPDEST"
}, {
"begin": 1848,
"end": 1870,
"name": "PUSH",
"value": "0"
}, {
"begin": 1848,
"end": 1870,
"name": "DUP1"
}, {
"begin": 1848,
"end": 1870,
"name": "DUP1"
}, {
"begin": 1920,
"end": 2154,
"name": "tag",
"value": "29"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1948,
"end": 1957,
"name": "PUSH",
"value": "2"
}, {
"begin": 1948,
"end": 1964,
"name": "SLOAD"
}, {
"begin": 1941,
"end": 1964,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1941,
"end": 1964,
"name": "DUP3"
}, {
"begin": 1941,
"end": 1964,
"name": "AND"
}, {
"begin": 1941,
"end": 1964,
"name": "LT"
}, {
"begin": 1920,
"end": 2154,
"name": "ISZERO"
}, {
"begin": 1920,
"end": 2154,
"name": "PUSH [tag]",
"value": "30"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPI"
}, {
"begin": 2018,
"end": 2034,
"name": "DUP2"
}, {
"begin": 1990,
"end": 1999,
"name": "PUSH",
"value": "2"
}, {
"begin": 2000,
"end": 2004,
"name": "DUP3"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1990,
"end": 2005,
"name": "AND"
}, {
"begin": 1990,
"end": 2005,
"name": "DUP2"
}, {
"begin": 1990,
"end": 2005,
"name": "SLOAD"
}, {
"begin": 1990,
"end": 2005,
"name": "DUP2"
}, {
"begin": 1990,
"end": 2005,
"name": "LT"
}, {
"begin": 1990,
"end": 2005,
"name": "ISZERO"
}, {
"begin": 1990,
"end": 2005,
"name": "ISZERO"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH [tag]",
"value": "32"
}, {
"begin": 1990,
"end": 2005,
"name": "JUMPI"
}, {
"begin": 1990,
"end": 2005,
"name": "INVALID"
}, {
"begin": 1990,
"end": 2005,
"name": "tag",
"value": "32"
}, {
"begin": 1990,
"end": 2005,
"name": "JUMPDEST"
}, {
"begin": 1990,
"end": 2005,
"name": "SWAP1"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2005,
"name": "MSTORE"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "20"
}, {
"begin": 1990,
"end": 2005,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2005,
"name": "KECCAK256"
}, {
"begin": 1990,
"end": 2005,
"name": "ADD"
}, {
"begin": 1990,
"end": 2015,
"name": "PUSH",
"value": "0"
}, {
"begin": 1990,
"end": 2015,
"name": "ADD"
}, {
"begin": 1990,
"end": 2015,
"name": "SLOAD"
}, {
"begin": 1990,
"end": 2034,
"name": "GT"
}, {
"begin": 1986,
"end": 2154,
"name": "ISZERO"
}, {
"begin": 1986,
"end": 2154,
"name": "PUSH [tag]",
"value": "34"
}, {
"begin": 1986,
"end": 2154,
"name": "JUMPI"
}, {
"begin": 2073,
"end": 2082,
"name": "PUSH",
"value": "2"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP1"
}, {
"begin": 2073,
"end": 2088,
"name": "SLOAD"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "FF"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP4"
}, {
"begin": 2073,
"end": 2088,
"name": "AND"
}, {
"begin": 2073,
"end": 2088,
"name": "SWAP1"
}, {
"begin": 2073,
"end": 2088,
"name": "DUP2"
}, {
"begin": 2073,
"end": 2088,
"name": "LT"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH [tag]",
"value": "35"
}, {
"begin": 2073,
"end": 2088,
"name": "JUMPI"
}, {
"begin": 2073,
"end": 2088,
"name": "INVALID"
}, {
"begin": 2073,
"end": 2088,
"name": "tag",
"value": "35"
}, {
"begin": 2073,
"end": 2088,
"name": "JUMPDEST"
}, {
"begin": 2073,
"end": 2088,
"name": "SWAP1"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2088,
"name": "MSTORE"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "20"
}, {
"begin": 2073,
"end": 2088,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2088,
"name": "KECCAK256"
}, {
"begin": 2073,
"end": 2088,
"name": "ADD"
}, {
"begin": 2073,
"end": 2098,
"name": "PUSH",
"value": "0"
}, {
"begin": 2073,
"end": 2098,
"name": "ADD"
}, {
"begin": 2073,
"end": 2098,
"name": "SLOAD"
}, {
"begin": 2054,
"end": 2098,
"name": "SWAP2"
}, {
"begin": 2054,
"end": 2098,
"name": "POP"
}, {
"begin": 2135,
"end": 2139,
"name": "DUP1"
}, {
"begin": 2116,
"end": 2139,
"name": "SWAP3"
}, {
"begin": 2116,
"end": 2139,
"name": "POP"
}, {
"begin": 1986,
"end": 2154,
"name": "tag",
"value": "34"
}, {
"begin": 1986,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1966,
"end": 1972,
"name": "PUSH",
"value": "1"
}, {
"begin": 1966,
"end": 1972,
"name": "ADD"
}, {
"begin": 1920,
"end": 2154,
"name": "PUSH [tag]",
"value": "29"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMP"
}, {
"begin": 1920,
"end": 2154,
"name": "tag",
"value": "30"
}, {
"begin": 1920,
"end": 2154,
"name": "JUMPDEST"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "POP"
}, {
"begin": 1796,
"end": 2160,
"name": "SWAP1"
}, {
"begin": 1796,
"end": 2160,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "14"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 727,
"end": 738,
"name": "PUSH",
"value": "0"
}, {
"begin": 727,
"end": 738,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 727,
"end": 738,
"name": "AND"
}, {
"begin": 713,
"end": 723,
"name": "CALLER"
}, {
"begin": 713,
"end": 738,
"name": "EQ"
}, {
"begin": 713,
"end": 738,
"name": "ISZERO"
}, {
"begin": 713,
"end": 738,
"name": "DUP1"
}, {
"begin": 713,
"end": 763,
"name": "PUSH [tag]",
"value": "38"
}, {
"begin": 713,
"end": 763,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "AND"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "0"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "MSTORE"
}, {
"begin": 742,
"end": 748,
"name": "PUSH",
"value": "1"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "20"
}, {
"begin": 742,
"end": 757,
"name": "DUP2"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "MSTORE"
}, {
"begin": 742,
"end": 757,
"name": "PUSH",
"value": "40"
}, {
"begin": 742,
"end": 757,
"name": "SWAP1"
}, {
"begin": 742,
"end": 757,
"name": "SWAP2"
}, {
"begin": 742,
"end": 757,
"name": "KECCAK256"
}, {
"begin": 742,
"end": 763,
"name": "ADD"
}, {
"begin": 742,
"end": 763,
"name": "SLOAD"
}, {
"begin": 742,
"end": 763,
"name": "PUSH",
"value": "FF"
}, {
"begin": 742,
"end": 763,
"name": "AND"
}, {
"begin": 713,
"end": 763,
"name": "tag",
"value": "38"
}, {
"begin": 713,
"end": 763,
"name": "JUMPDEST"
}, {
"begin": 709,
"end": 772,
"name": "ISZERO"
}, {
"begin": 709,
"end": 772,
"name": "PUSH [tag]",
"value": "39"
}, {
"begin": 709,
"end": 772,
"name": "JUMPI"
}, {
"begin": 765,
"end": 772,
"name": "PUSH [tag]",
"value": "37"
}, {
"begin": 765,
"end": 772,
"name": "JUMP"
}, {
"begin": 709,
"end": 772,
"name": "tag",
"value": "39"
}, {
"begin": 709,
"end": 772,
"name": "JUMPDEST"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "2"
}, {
"begin": -1,
"end": -1,
"name": "EXP"
}, {
"begin": -1,
"end": -1,
"name": "SUB"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "AND"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "0"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "MSTORE"
}, {
"begin": 806,
"end": 807,
"name": "PUSH",
"value": "1"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "20"
}, {
"begin": 781,
"end": 796,
"name": "DUP2"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "MSTORE"
}, {
"begin": 781,
"end": 796,
"name": "PUSH",
"value": "40"
}, {
"begin": 781,
"end": 796,
"name": "SWAP1"
}, {
"begin": 781,
"end": 796,
"name": "SWAP2"
}, {
"begin": 781,
"end": 796,
"name": "KECCAK256"
}, {
"begin": 781,
"end": 807,
"name": "SSTORE"
}, {
"begin": 650,
"end": 814,
"name": "tag",
"value": "37"
}, {
"begin": 650,
"end": 814,
"name": "JUMPDEST"
}, {
"begin": 650,
"end": 814,
"name": "POP"
}, {
"begin": 650,
"end": 814,
"name": "JUMP",
"value": "[out]"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "17"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1583,
"end": 1593,
"name": "CALLER"
}, {
"begin": 1553,
"end": 1573,
"name": "PUSH",
"value": "0"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "DUP2"
}, {
"begin": 1576,
"end": 1594,
"name": "MSTORE"
}, {
"begin": 1576,
"end": 1582,
"name": "PUSH",
"value": "1"
}, {
"begin": 1576,
"end": 1594,
"name": "PUSH",
"value": "20"
}, {
"begin": 1576,
"end": 1594,
"name": "DUP2"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "MSTORE"
}, {
"begin": 1576,
"end": 1594,
"name": "PUSH",
"value": "40"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP1"
}, {
"begin": 1576,
"end": 1594,
"name": "SWAP2"
}, {
"begin": 1576,
"end": 1594,
"name": "KECCAK256"
}, {
"begin": 1608,
"end": 1620,
"name": "SWAP1"
}, {
"begin": 1608,
"end": 1620,
"name": "DUP2"
}, {
"begin": 1608,
"end": 1620,
"name": "ADD"
}, {
"begin": 1608,
"end": 1620,
"name": "SLOAD"
}, {
"begin": 1608,
"end": 1620,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1608,
"end": 1620,
"name": "AND"
}, {
"begin": 1608,
"end": 1620,
"name": "DUP1"
}, {
"begin": 1608,
"end": 1654,
"name": "PUSH [tag]",
"value": "41"
}, {
"begin": 1608,
"end": 1654,
"name": "JUMPI"
}, {
"begin": -1,
"end": -1,
"name": "POP"
}, {
"begin": 1638,
"end": 1647,
"name": "PUSH",
"value": "2"
}, {
"begin": 1638,
"end": 1654,
"name": "SLOAD"
}, {
"begin": 1624,
"end": 1654,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1624,
"end": 1654,
"name": "DUP4"
}, {
"begin": 1624,
"end": 1654,
"name": "AND"
}, {
"begin": 1624,
"end": 1654,
"name": "LT"
}, {
"begin": 1624,
"end": 1654,
"name": "ISZERO"
}, {
"begin": 1608,
"end": 1654,
"name": "tag",
"value": "41"
}, {
"begin": 1608,
"end": 1654,
"name": "JUMPDEST"
}, {
"begin": 1604,
"end": 1663,
"name": "ISZERO"
}, {
"begin": 1604,
"end": 1663,
"name": "PUSH [tag]",
"value": "42"
}, {
"begin": 1604,
"end": 1663,
"name": "JUMPI"
}, {
"begin": 1656,
"end": 1663,
"name": "PUSH [tag]",
"value": "40"
}, {
"begin": 1656,
"end": 1663,
"name": "JUMP"
}, {
"begin": 1604,
"end": 1663,
"name": "tag",
"value": "42"
}, {
"begin": 1604,
"end": 1663,
"name": "JUMPDEST"
}, {
"begin": 1687,
"end": 1691,
"name": "PUSH",
"value": "1"
}, {
"begin": 1672,
"end": 1684,
"name": "DUP2"
}, {
"begin": 1672,
"end": 1684,
"name": "DUP2"
}, {
"begin": 1672,
"end": 1684,
"name": "ADD"
}, {
"begin": 1672,
"end": 1691,
"name": "DUP1"
}, {
"begin": 1672,
"end": 1691,
"name": "SLOAD"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1672,
"end": 1691,
"name": "AND"
}, {
"begin": 1672,
"end": 1691,
"name": "SWAP1"
}, {
"begin": 1672,
"end": 1691,
"name": "SWAP2"
}, {
"begin": 1672,
"end": 1691,
"name": "OR"
}, {
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "FF00"
}, {
"begin": -1,
"end": -1,
"name": "NOT"
}, {
"begin": 1701,
"end": 1725,
"name": "AND"
}, {
"begin": 1672,
"end": 1691,
"name": "PUSH",
"value": "100"
}, {
"begin": 1672,
"end": 1691,
"name": "PUSH",
"value": "FF"
}, {
"begin": 1701,
"end": 1725,
"name": "DUP6"
}, {
"begin": 1701,
"end": 1725,
"name": "AND"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "DUP2"
}, {
"begin": 1701,
"end": 1725,
"name": "MUL"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "OR"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP1"
}, {
"begin": 1701,
"end": 1725,
"name": "SWAP2"
}, {
"begin": 1701,
"end": 1725,
"name": "SSTORE"
}, {
"begin": 1770,
"end": 1783,
"name": "DUP2"
}, {
"begin": 1770,
"end": 1783,
"name": "SLOAD"
}, {
"begin": 1735,
"end": 1744,
"name": "PUSH",
"value": "2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP1"
}, {
"begin": 1735,
"end": 1756,
"name": "SLOAD"
}, {
"begin": 1770,
"end": 1783,
"name": "SWAP2"
}, {
"begin": 1770,
"end": 1783,
"name": "SWAP3"
}, {
"begin": 1735,
"end": 1744,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1744,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP2"
}, {
"begin": 1735,
"end": 1756,
"name": "LT"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH [tag]",
"value": "43"
}, {
"begin": 1735,
"end": 1756,
"name": "JUMPI"
}, {
"begin": 1735,
"end": 1756,
"name": "INVALID"
}, {
"begin": 1735,
"end": 1756,
"name": "tag",
"value": "43"
}, {
"begin": 1735,
"end": 1756,
"name": "JUMPDEST"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH",
"value": "0"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "DUP3"
}, {
"begin": 1735,
"end": 1756,
"name": "MSTORE"
}, {
"begin": 1735,
"end": 1756,
"name": "PUSH",
"value": "20"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1756,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1756,
"name": "KECCAK256"
}, {
"begin": 1735,
"end": 1756,
"name": "ADD"
}, {
"begin": 1735,
"end": 1783,
"name": "DUP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SLOAD"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP2"
}, {
"begin": 1735,
"end": 1783,
"name": "ADD"
}, {
"begin": 1735,
"end": 1783,
"name": "SWAP1"
}, {
"begin": 1735,
"end": 1783,
"name": "SSTORE"
}, {
"begin": 1504,
"end": 1790,
"name": "tag",
"value": "40"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMPDEST"
}, {
"begin": 1504,
"end": 1790,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "POP"
}, {
"begin": 1504,
"end": 1790,
"name": "JUMP",
"value": "[out]"
}]
}
}
},
"methodIdentifiers": {
"delegate(address)": "5c19a95c",
"giveRightToVote(address)": "9e7b8d61",
"vote(uint8)": "b3f98adc",
"winningProposal()": "609ff1bd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"winningProposal\",\"outputs\":[{\"name\":\"_winningProposal\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"toVoter\",\"type\":\"address\"}],\"name\":\"giveRightToVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"toProposal\",\"type\":\"uint8\"}],\"name\":\"vote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_numProposals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"delegate(address)\":{\"notice\":\"Delegate your vote to the voter $(to).\"},\"giveRightToVote(address)\":{\"notice\":\"Give $(toVoter) the right to vote on this ballot. May only be called by $(chairperson).\"},\"vote(uint8)\":{\"notice\":\"Give a single vote to proposal $(toProposal).\"}}}},\"settings\":{\"compilationTarget\":{\"browser/ballot.sol\":\"Ballot\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"browser/ballot.sol\":{\"keccak256\":\"0xf5e17a682643d68dac41e468e63c07dd2de956fe2627f6d4925bd0d7a5613b8d\",\"urls\":[\"bzzr://5405f025f3fe1155284788e11f994c2bd78aa861e0fab004b1da38b8a4e91d0e\"]}},\"version\":1}",
"userdoc": {
"methods": {
"delegate(address)": {
"notice": "Delegate your vote to the voter $(to)."
},
"giveRightToVote(address)": {
"notice": "Give $(toVoter) the right to vote on this ballot. May only be called by $(chairperson)."
},
"vote(uint8)": {
"notice": "Give a single vote to proposal $(toProposal)."
}
}
}
}
}
},
"errors": [{
"component": "general",
"formattedMessage": "browser/ballot.sol:19:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use \"constructor(...) { ... }\" instead.\n function Ballot(uint8 _numProposals) public {\n ^ (Relevant source part starts here and spans across multiple lines).\n",
"message": "Defining constructors as functions with the same name as the contract is deprecated. Use \"constructor(...) { ... }\" instead.",
"severity": "warning",
"sourceLocation": {
"end": 540,
"file": "browser/ballot.sol",
"start": 373
},
"type": "Warning"
}],
"sources": {
"browser/ballot.sol": {
"id": 0,
"legacyAST": {
"attributes": {
"absolutePath": "browser/ballot.sol",
"exportedSymbols": {
"Ballot": [238]
}
},
"children": [{
"attributes": {
"literals": ["solidity", "^", "0.4", ".0"]
},
"id": 1,
"name": "PragmaDirective",
"src": "0:23:0"
}, {
"attributes": {
"baseContracts": [null],
"contractDependencies": [null],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [238],
"name": "Ballot",
"scope": 239
},
"children": [{
"attributes": {
"canonicalName": "Ballot.Voter",
"name": "Voter",
"scope": 238,
"visibility": "public"
},
"children": [{
"attributes": {
"constant": false,
"name": "weight",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint",
"type": "uint256"
},
"id": 2,
"name": "ElementaryTypeName",
"src": "70:4:0"
}],
"id": 3,
"name": "VariableDeclaration",
"src": "70:11:0"
}, {
"attributes": {
"constant": false,
"name": "voted",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 4,
"name": "ElementaryTypeName",
"src": "91:4:0"
}],
"id": 5,
"name": "VariableDeclaration",
"src": "91:10:0"
}, {
"attributes": {
"constant": false,
"name": "vote",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 6,
"name": "ElementaryTypeName",
"src": "111:5:0"
}],
"id": 7,
"name": "VariableDeclaration",
"src": "111:10:0"
}, {
"attributes": {
"constant": false,
"name": "delegate",
"scope": 10,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 8,
"name": "ElementaryTypeName",
"src": "131:7:0"
}],
"id": 9,
"name": "VariableDeclaration",
"src": "131:16:0"
}],
"id": 10,
"name": "StructDefinition",
"src": "47:107:0"
}, {
"attributes": {
"canonicalName": "Ballot.Proposal",
"name": "Proposal",
"scope": 238,
"visibility": "public"
},
"children": [{
"attributes": {
"constant": false,
"name": "voteCount",
"scope": 13,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint",
"type": "uint256"
},
"id": 11,
"name": "ElementaryTypeName",
"src": "185:4:0"
}],
"id": 12,
"name": "VariableDeclaration",
"src": "185:14:0"
}],
"id": 13,
"name": "StructDefinition",
"src": "159:47:0"
}, {
"attributes": {
"constant": false,
"name": "chairperson",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 14,
"name": "ElementaryTypeName",
"src": "212:7:0"
}],
"id": 15,
"name": "VariableDeclaration",
"src": "212:19:0"
}, {
"attributes": {
"constant": false,
"name": "voters",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "mapping(address => struct Ballot.Voter)",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"type": "mapping(address => struct Ballot.Voter)"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 16,
"name": "ElementaryTypeName",
"src": "245:7:0"
}, {
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 17,
"name": "UserDefinedTypeName",
"src": "256:5:0"
}],
"id": 18,
"name": "Mapping",
"src": "237:25:0"
}],
"id": 19,
"name": "VariableDeclaration",
"src": "237:32:0"
}, {
"attributes": {
"constant": false,
"name": "proposals",
"scope": 238,
"stateVariable": true,
"storageLocation": "default",
"type": "struct Ballot.Proposal[]",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"length": null,
"type": "struct Ballot.Proposal[]"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Proposal",
"referencedDeclaration": 13,
"type": "struct Ballot.Proposal"
},
"id": 20,
"name": "UserDefinedTypeName",
"src": "275:8:0"
}],
"id": 21,
"name": "ArrayTypeName",
"src": "275:10:0"
}],
"id": 22,
"name": "VariableDeclaration",
"src": "275:20:0"
}, {
"attributes": {
"constant": false,
"documentation": "Create a new ballot with $(_numProposals) different proposals.",
"implemented": true,
"isConstructor": true,
"modifiers": [null],
"name": "Ballot",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "_numProposals",
"scope": 46,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 23,
"name": "ElementaryTypeName",
"src": "389:5:0"
}],
"id": 24,
"name": "VariableDeclaration",
"src": "389:19:0"
}],
"id": 25,
"name": "ParameterList",
"src": "388:21:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 26,
"name": "ParameterList",
"src": "417:0:0"
}, {
"children": [{
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 27,
"name": "Identifier",
"src": "427:11:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 28,
"name": "Identifier",
"src": "441:3:0"
}],
"id": 29,
"name": "MemberAccess",
"src": "441:10:0"
}],
"id": 30,
"name": "Assignment",
"src": "427:24:0"
}],
"id": 31,
"name": "ExpressionStatement",
"src": "427:24:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 32,
"name": "Identifier",
"src": "461:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 33,
"name": "Identifier",
"src": "468:11:0"
}],
"id": 34,
"name": "IndexAccess",
"src": "461:19:0"
}],
"id": 35,
"name": "MemberAccess",
"src": "461:26:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 36,
"name": "Literal",
"src": "490:1:0"
}],
"id": 37,
"name": "Assignment",
"src": "461:30:0"
}],
"id": 38,
"name": "ExpressionStatement",
"src": "461:30:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 39,
"name": "Identifier",
"src": "501:9:0"
}],
"id": 41,
"name": "MemberAccess",
"src": "501:16:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 24,
"type": "uint8",
"value": "_numProposals"
},
"id": 42,
"name": "Identifier",
"src": "520:13:0"
}],
"id": 43,
"name": "Assignment",
"src": "501:32:0"
}],
"id": 44,
"name": "ExpressionStatement",
"src": "501:32:0"
}],
"id": 45,
"name": "Block",
"src": "417:123:0"
}],
"id": 46,
"name": "FunctionDefinition",
"src": "373:167:0"
}, {
"attributes": {
"constant": false,
"documentation": "Give $(toVoter) the right to vote on this ballot.\n May only be called by $(chairperson).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "giveRightToVote",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "toVoter",
"scope": 70,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 47,
"name": "ElementaryTypeName",
"src": "675:7:0"
}],
"id": 48,
"name": "VariableDeclaration",
"src": "675:15:0"
}],
"id": 49,
"name": "ParameterList",
"src": "674:17:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 50,
"name": "ParameterList",
"src": "699:0:0"
}, {
"children": [{
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "||",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 51,
"name": "Identifier",
"src": "713:3:0"
}],
"id": 52,
"name": "MemberAccess",
"src": "713:10:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 15,
"type": "address",
"value": "chairperson"
},
"id": 53,
"name": "Identifier",
"src": "727:11:0"
}],
"id": 54,
"name": "BinaryOperation",
"src": "713:25:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 55,
"name": "Identifier",
"src": "742:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 48,
"type": "address",
"value": "toVoter"
},
"id": 56,
"name": "Identifier",
"src": "749:7:0"
}],
"id": 57,
"name": "IndexAccess",
"src": "742:15:0"
}],
"id": 58,
"name": "MemberAccess",
"src": "742:21:0"
}],
"id": 59,
"name": "BinaryOperation",
"src": "713:50:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 50
},
"id": 60,
"name": "Return",
"src": "765:7:0"
}],
"id": 61,
"name": "IfStatement",
"src": "709:63:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 62,
"name": "Identifier",
"src": "781:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 48,
"type": "address",
"value": "toVoter"
},
"id": 63,
"name": "Identifier",
"src": "788:7:0"
}],
"id": 64,
"name": "IndexAccess",
"src": "781:15:0"
}],
"id": 65,
"name": "MemberAccess",
"src": "781:22:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 66,
"name": "Literal",
"src": "806:1:0"
}],
"id": 67,
"name": "Assignment",
"src": "781:26:0"
}],
"id": 68,
"name": "ExpressionStatement",
"src": "781:26:0"
}],
"id": 69,
"name": "Block",
"src": "699:115:0"
}],
"id": 70,
"name": "FunctionDefinition",
"src": "650:164:0"
}, {
"attributes": {
"constant": false,
"documentation": "Delegate your vote to the voter $(to).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "delegate",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "to",
"scope": 154,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "address",
"type": "address"
},
"id": 71,
"name": "ElementaryTypeName",
"src": "885:7:0"
}],
"id": 72,
"name": "VariableDeclaration",
"src": "885:10:0"
}],
"id": 73,
"name": "ParameterList",
"src": "884:12:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 74,
"name": "ParameterList",
"src": "904:0:0"
}, {
"children": [{
"attributes": {
"assignments": [76]
},
"children": [{
"attributes": {
"constant": false,
"name": "sender",
"scope": 154,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 75,
"name": "UserDefinedTypeName",
"src": "914:5:0"
}],
"id": 76,
"name": "VariableDeclaration",
"src": "914:20:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 77,
"name": "Identifier",
"src": "937:6:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 78,
"name": "Identifier",
"src": "944:3:0"
}],
"id": 79,
"name": "MemberAccess",
"src": "944:10:0"
}],
"id": 80,
"name": "IndexAccess",
"src": "937:18:0"
}],
"id": 81,
"name": "VariableDeclarationStatement",
"src": "914:41:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 82,
"name": "Identifier",
"src": "990:6:0"
}],
"id": 83,
"name": "MemberAccess",
"src": "990:12:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 74
},
"id": 84,
"name": "Return",
"src": "1004:7:0"
}],
"id": 85,
"name": "IfStatement",
"src": "986:25:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "&&",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 86,
"name": "Identifier",
"src": "1027:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 87,
"name": "Identifier",
"src": "1034:2:0"
}],
"id": 88,
"name": "IndexAccess",
"src": "1027:10:0"
}],
"id": 89,
"name": "MemberAccess",
"src": "1027:19:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [null],
"type": "address",
"type_conversion": true
},
"children": [{
"attributes": {
"argumentTypes": [{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "type(address)",
"value": "address"
},
"id": 90,
"name": "ElementaryTypeNameExpression",
"src": "1050:7:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 91,
"name": "Literal",
"src": "1058:1:0"
}],
"id": 92,
"name": "FunctionCall",
"src": "1050:10:0"
}],
"id": 93,
"name": "BinaryOperation",
"src": "1027:33:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 94,
"name": "Identifier",
"src": "1064:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 95,
"name": "Identifier",
"src": "1071:2:0"
}],
"id": 96,
"name": "IndexAccess",
"src": "1064:10:0"
}],
"id": 97,
"name": "MemberAccess",
"src": "1064:19:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 98,
"name": "Identifier",
"src": "1087:3:0"
}],
"id": 99,
"name": "MemberAccess",
"src": "1087:10:0"
}],
"id": 100,
"name": "BinaryOperation",
"src": "1064:33:0"
}],
"id": 101,
"name": "BinaryOperation",
"src": "1027:70:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 102,
"name": "Identifier",
"src": "1111:2:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 103,
"name": "Identifier",
"src": "1116:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 104,
"name": "Identifier",
"src": "1123:2:0"
}],
"id": 105,
"name": "IndexAccess",
"src": "1116:10:0"
}],
"id": 106,
"name": "MemberAccess",
"src": "1116:19:0"
}],
"id": 107,
"name": "Assignment",
"src": "1111:24:0"
}],
"id": 108,
"name": "ExpressionStatement",
"src": "1111:24:0"
}],
"id": 109,
"name": "WhileStatement",
"src": "1020:115:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "==",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 110,
"name": "Identifier",
"src": "1149:2:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 111,
"name": "Identifier",
"src": "1155:3:0"
}],
"id": 112,
"name": "MemberAccess",
"src": "1155:10:0"
}],
"id": 113,
"name": "BinaryOperation",
"src": "1149:16:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 74
},
"id": 114,
"name": "Return",
"src": "1167:7:0"
}],
"id": 115,
"name": "IfStatement",
"src": "1145:29:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 116,
"name": "Identifier",
"src": "1183:6:0"
}],
"id": 118,
"name": "MemberAccess",
"src": "1183:12:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "74727565",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "bool",
"type": "bool",
"value": "true"
},
"id": 119,
"name": "Literal",
"src": "1198:4:0"
}],
"id": 120,
"name": "Assignment",
"src": "1183:19:0"
}],
"id": 121,
"name": "ExpressionStatement",
"src": "1183:19:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "delegate",
"referencedDeclaration": 9,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 122,
"name": "Identifier",
"src": "1212:6:0"
}],
"id": 124,
"name": "MemberAccess",
"src": "1212:15:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 125,
"name": "Identifier",
"src": "1230:2:0"
}],
"id": 126,
"name": "Assignment",
"src": "1212:20:0"
}],
"id": 127,
"name": "ExpressionStatement",
"src": "1212:20:0"
}, {
"attributes": {
"assignments": [129]
},
"children": [{
"attributes": {
"constant": false,
"name": "delegateTo",
"scope": 154,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 128,
"name": "UserDefinedTypeName",
"src": "1242:5:0"
}],
"id": 129,
"name": "VariableDeclaration",
"src": "1242:24:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 130,
"name": "Identifier",
"src": "1269:6:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 72,
"type": "address",
"value": "to"
},
"id": 131,
"name": "Identifier",
"src": "1276:2:0"
}],
"id": 132,
"name": "IndexAccess",
"src": "1269:10:0"
}],
"id": 133,
"name": "VariableDeclarationStatement",
"src": "1242:37:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 134,
"name": "Identifier",
"src": "1293:10:0"
}],
"id": 135,
"name": "MemberAccess",
"src": "1293:16:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 136,
"name": "Identifier",
"src": "1323:9:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "vote",
"referencedDeclaration": 7,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 137,
"name": "Identifier",
"src": "1333:10:0"
}],
"id": 138,
"name": "MemberAccess",
"src": "1333:15:0"
}],
"id": 139,
"name": "IndexAccess",
"src": "1323:26:0"
}],
"id": 140,
"name": "MemberAccess",
"src": "1323:36:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 141,
"name": "Identifier",
"src": "1363:6:0"
}],
"id": 142,
"name": "MemberAccess",
"src": "1363:13:0"
}],
"id": 143,
"name": "Assignment",
"src": "1323:53:0"
}],
"id": 144,
"name": "ExpressionStatement",
"src": "1323:53:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 129,
"type": "struct Ballot.Voter storage pointer",
"value": "delegateTo"
},
"id": 145,
"name": "Identifier",
"src": "1403:10:0"
}],
"id": 147,
"name": "MemberAccess",
"src": "1403:17:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 76,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 148,
"name": "Identifier",
"src": "1424:6:0"
}],
"id": 149,
"name": "MemberAccess",
"src": "1424:13:0"
}],
"id": 150,
"name": "Assignment",
"src": "1403:34:0"
}],
"id": 151,
"name": "ExpressionStatement",
"src": "1403:34:0"
}],
"id": 152,
"name": "IfStatement",
"src": "1289:148:0"
}],
"id": 153,
"name": "Block",
"src": "904:540:0"
}],
"id": 154,
"name": "FunctionDefinition",
"src": "867:577:0"
}, {
"attributes": {
"constant": false,
"documentation": "Give a single vote to proposal $(toProposal).",
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "vote",
"payable": false,
"scope": 238,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [{
"children": [{
"attributes": {
"constant": false,
"name": "toProposal",
"scope": 196,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 155,
"name": "ElementaryTypeName",
"src": "1518:5:0"
}],
"id": 156,
"name": "VariableDeclaration",
"src": "1518:16:0"
}],
"id": 157,
"name": "ParameterList",
"src": "1517:18:0"
}, {
"attributes": {
"parameters": [null]
},
"children": [],
"id": 158,
"name": "ParameterList",
"src": "1543:0:0"
}, {
"children": [{
"attributes": {
"assignments": [160]
},
"children": [{
"attributes": {
"constant": false,
"name": "sender",
"scope": 196,
"stateVariable": false,
"storageLocation": "storage",
"type": "struct Ballot.Voter",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"contractScope": null,
"name": "Voter",
"referencedDeclaration": 10,
"type": "struct Ballot.Voter"
},
"id": 159,
"name": "UserDefinedTypeName",
"src": "1553:5:0"
}],
"id": 160,
"name": "VariableDeclaration",
"src": "1553:20:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Voter storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 19,
"type": "mapping(address => struct Ballot.Voter storage ref)",
"value": "voters"
},
"id": 161,
"name": "Identifier",
"src": "1576:6:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "sender",
"referencedDeclaration": null,
"type": "address"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 253,
"type": "msg",
"value": "msg"
},
"id": 162,
"name": "Identifier",
"src": "1583:3:0"
}],
"id": 163,
"name": "MemberAccess",
"src": "1583:10:0"
}],
"id": 164,
"name": "IndexAccess",
"src": "1576:18:0"
}],
"id": 165,
"name": "VariableDeclarationStatement",
"src": "1553:41:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "||",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 166,
"name": "Identifier",
"src": "1608:6:0"
}],
"id": 167,
"name": "MemberAccess",
"src": "1608:12:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": ">=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 168,
"name": "Identifier",
"src": "1624:10:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 169,
"name": "Identifier",
"src": "1638:9:0"
}],
"id": 170,
"name": "MemberAccess",
"src": "1638:16:0"
}],
"id": 171,
"name": "BinaryOperation",
"src": "1624:30:0"
}],
"id": 172,
"name": "BinaryOperation",
"src": "1608:46:0"
}, {
"attributes": {
"expression": null,
"functionReturnParameters": 158
},
"id": 173,
"name": "Return",
"src": "1656:7:0"
}],
"id": 174,
"name": "IfStatement",
"src": "1604:59:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voted",
"referencedDeclaration": 5,
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 175,
"name": "Identifier",
"src": "1672:6:0"
}],
"id": 177,
"name": "MemberAccess",
"src": "1672:12:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "74727565",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "bool",
"type": "bool",
"value": "true"
},
"id": 178,
"name": "Literal",
"src": "1687:4:0"
}],
"id": 179,
"name": "Assignment",
"src": "1672:19:0"
}],
"id": 180,
"name": "ExpressionStatement",
"src": "1672:19:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "vote",
"referencedDeclaration": 7,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 181,
"name": "Identifier",
"src": "1701:6:0"
}],
"id": 183,
"name": "MemberAccess",
"src": "1701:11:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 184,
"name": "Identifier",
"src": "1715:10:0"
}],
"id": 185,
"name": "Assignment",
"src": "1701:24:0"
}],
"id": 186,
"name": "ExpressionStatement",
"src": "1701:24:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "+=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 187,
"name": "Identifier",
"src": "1735:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 156,
"type": "uint8",
"value": "toProposal"
},
"id": 188,
"name": "Identifier",
"src": "1745:10:0"
}],
"id": 189,
"name": "IndexAccess",
"src": "1735:21:0"
}],
"id": 190,
"name": "MemberAccess",
"src": "1735:31:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "weight",
"referencedDeclaration": 3,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 160,
"type": "struct Ballot.Voter storage pointer",
"value": "sender"
},
"id": 191,
"name": "Identifier",
"src": "1770:6:0"
}],
"id": 192,
"name": "MemberAccess",
"src": "1770:13:0"
}],
"id": 193,
"name": "Assignment",
"src": "1735:48:0"
}],
"id": 194,
"name": "ExpressionStatement",
"src": "1735:48:0"
}],
"id": 195,
"name": "Block",
"src": "1543:247:0"
}],
"id": 196,
"name": "FunctionDefinition",
"src": "1504:286:0"
}, {
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [null],
"name": "winningProposal",
"payable": false,
"scope": 238,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [{
"attributes": {
"parameters": [null]
},
"children": [],
"id": 197,
"name": "ParameterList",
"src": "1820:2:0"
}, {
"children": [{
"attributes": {
"constant": false,
"name": "_winningProposal",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 198,
"name": "ElementaryTypeName",
"src": "1848:5:0"
}],
"id": 199,
"name": "VariableDeclaration",
"src": "1848:22:0"
}],
"id": 200,
"name": "ParameterList",
"src": "1847:24:0"
}, {
"children": [{
"attributes": {
"assignments": [202]
},
"children": [{
"attributes": {
"constant": false,
"name": "winningVoteCount",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 201,
"name": "ElementaryTypeName",
"src": "1882:7:0"
}],
"id": 202,
"name": "VariableDeclaration",
"src": "1882:24:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 203,
"name": "Literal",
"src": "1909:1:0"
}],
"id": 204,
"name": "VariableDeclarationStatement",
"src": "1882:28:0"
}, {
"children": [{
"attributes": {
"assignments": [206]
},
"children": [{
"attributes": {
"constant": false,
"name": "prop",
"scope": 237,
"stateVariable": false,
"storageLocation": "default",
"type": "uint8",
"value": null,
"visibility": "internal"
},
"children": [{
"attributes": {
"name": "uint8",
"type": "uint8"
},
"id": 205,
"name": "ElementaryTypeName",
"src": "1925:5:0"
}],
"id": 206,
"name": "VariableDeclaration",
"src": "1925:10:0"
}, {
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 207,
"name": "Literal",
"src": "1938:1:0"
}],
"id": 208,
"name": "VariableDeclarationStatement",
"src": "1925:14:0"
}, {
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "<",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 209,
"name": "Identifier",
"src": "1941:4:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "length",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 210,
"name": "Identifier",
"src": "1948:9:0"
}],
"id": 211,
"name": "MemberAccess",
"src": "1948:16:0"
}],
"id": 212,
"name": "BinaryOperation",
"src": "1941:23:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "++",
"prefix": false,
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 213,
"name": "Identifier",
"src": "1966:4:0"
}],
"id": 214,
"name": "UnaryOperation",
"src": "1966:6:0"
}],
"id": 215,
"name": "ExpressionStatement",
"src": "1966:6:0"
}, {
"attributes": {
"falseBody": null
},
"children": [{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": ">",
"type": "bool"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 216,
"name": "Identifier",
"src": "1990:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 217,
"name": "Identifier",
"src": "2000:4:0"
}],
"id": 218,
"name": "IndexAccess",
"src": "1990:15:0"
}],
"id": 219,
"name": "MemberAccess",
"src": "1990:25:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 202,
"type": "uint256",
"value": "winningVoteCount"
},
"id": 220,
"name": "Identifier",
"src": "2018:16:0"
}],
"id": 221,
"name": "BinaryOperation",
"src": "1990:44:0"
}, {
"children": [{
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 202,
"type": "uint256",
"value": "winningVoteCount"
},
"id": 222,
"name": "Identifier",
"src": "2054:16:0"
}, {
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "voteCount",
"referencedDeclaration": 12,
"type": "uint256"
},
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "struct Ballot.Proposal storage ref"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 22,
"type": "struct Ballot.Proposal storage ref[] storage ref",
"value": "proposals"
},
"id": 223,
"name": "Identifier",
"src": "2073:9:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 224,
"name": "Identifier",
"src": "2083:4:0"
}],
"id": 225,
"name": "IndexAccess",
"src": "2073:15:0"
}],
"id": 226,
"name": "MemberAccess",
"src": "2073:25:0"
}],
"id": 227,
"name": "Assignment",
"src": "2054:44:0"
}],
"id": 228,
"name": "ExpressionStatement",
"src": "2054:44:0"
}, {
"children": [{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "uint8"
},
"children": [{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 199,
"type": "uint8",
"value": "_winningProposal"
},
"id": 229,
"name": "Identifier",
"src": "2116:16:0"
}, {
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [null],
"referencedDeclaration": 206,
"type": "uint8",
"value": "prop"
},
"id": 230,
"name": "Identifier",
"src": "2135:4:0"
}],
"id": 231,
"name": "Assignment",
"src": "2116:23:0"
}],
"id": 232,
"name": "ExpressionStatement",
"src": "2116:23:0"
}],
"id": 233,
"name": "Block",
"src": "2036:118:0"
}],
"id": 234,
"name": "IfStatement",
"src": "1986:168:0"
}],
"id": 235,
"name": "ForStatement",
"src": "1920:234:0"
}],
"id": 236,
"name": "Block",
"src": "1872:288:0"
}],
"id": 237,
"name": "FunctionDefinition",
"src": "1796:364:0"
}],
"id": 238,
"name": "ContractDefinition",
"src": "24:2138:0"
}],
"id": 239,
"name": "SourceUnit",
"src": "0:2162:0"
}
}
}
},
"source": {
"sources": {
"browser/ballot.sol": {
"content": "pragma solidity ^0.4.0;\ncontract Ballot {\n\n struct Voter {\n uint weight;\n bool voted;\n uint8 vote;\n address delegate;\n }\n struct Proposal {\n uint voteCount;\n }\n\n address chairperson;\n mapping(address => Voter) voters;\n Proposal[] proposals;\n\n /// Create a new ballot with $(_numProposals) different proposals.\n function Ballot(uint8 _numProposals) public {\n chairperson = msg.sender;\n voters[chairperson].weight = 1;\n proposals.length = _numProposals;\n }\n\n /// Give $(toVoter) the right to vote on this ballot.\n /// May only be called by $(chairperson).\n function giveRightToVote(address toVoter) public {\n if (msg.sender != chairperson || voters[toVoter].voted) return;\n voters[toVoter].weight = 1;\n }\n\n /// Delegate your vote to the voter $(to).\n function delegate(address to) public {\n Voter storage sender = voters[msg.sender]; // assigns reference\n if (sender.voted) return;\n while (voters[to].delegate != address(0) && voters[to].delegate != msg.sender)\n to = voters[to].delegate;\n if (to == msg.sender) return;\n sender.voted = true;\n sender.delegate = to;\n Voter storage delegateTo = voters[to];\n if (delegateTo.voted)\n proposals[delegateTo.vote].voteCount += sender.weight;\n else\n delegateTo.weight += sender.weight;\n }\n\n /// Give a single vote to proposal $(toProposal).\n function vote(uint8 toProposal) public {\n Voter storage sender = voters[msg.sender];\n if (sender.voted || toProposal >= proposals.length) return;\n sender.voted = true;\n sender.vote = toProposal;\n proposals[toProposal].voteCount += sender.weight;\n }\n\n function winningProposal() public constant returns (uint8 _winningProposal) {\n uint256 winningVoteCount = 0;\n for (uint8 prop = 0; prop < proposals.length; prop++)\n if (proposals[prop].voteCount > winningVoteCount) {\n winningVoteCount = proposals[prop].voteCount;\n _winningProposal = prop;\n }\n }\n}"
}
},
"target": "browser/ballot.sol"
}
}