@netvote/elections-solidity
Version:
Elections Contracts
1,085 lines (1,084 loc) • 67.9 kB
JSON
{
"contractName": "PoolRegistry",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "index",
"type": "uint256"
}
],
"name": "getPool",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "activate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "removeAdmin",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "p",
"type": "address"
}
],
"name": "poolExists",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "isAdmin",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "electionPhase",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "abort",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "p",
"type": "address"
}
],
"name": "removePool",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "close",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "removeSelf",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "addAdmin",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "p",
"type": "address"
}
],
"name": "getPoolIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getPoolCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isLocked",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "unlock",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isClosed",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "p",
"type": "address"
}
],
"name": "addPool",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "checkConfig",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "lock",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [],
"name": "Closed",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Activated",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Aborted",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Locked",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Unlocked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
}
],
"bytecode": "0x60606040526002805461ffff1916905560008054600160a060020a03191633600160a060020a0316178155610ad490819061003a90396000f3006060604052600436106101035763ffffffff60e060020a600035041663068bcd8d81146101085780630f15f4c01461013a5780631785f53c1461014f5780631e1c6a071461016e57806324d7806c146101a1578063265050b6146101c057806335a063b4146101f75780633b7d09461461020a57806343d726d6146102295780635e898dac1461023c578063704802751461024f578063870638501461026e5780638da5cb5b1461029f5780638eec5d70146102b2578063a4e2d634146102c5578063a69df4b5146102d8578063c2b6b58c146102eb578063d914cd4b146102fe578063f098fe471461031d578063f2fde38b14610330578063f83d08ba1461034f575b600080fd5b341561011357600080fd5b61011e600435610362565b604051600160a060020a03909116815260200160405180910390f35b341561014557600080fd5b61014d6103e2565b005b341561015a57600080fd5b61014d600160a060020a036004351661047b565b341561017957600080fd5b61018d600160a060020a03600435166104b7565b604051901515815260200160405180910390f35b34156101ac57600080fd5b61018d600160a060020a0360043516610520565b34156101cb57600080fd5b6101d361056f565b604051808260038111156101e357fe5b60ff16815260200191505060405180910390f35b341561020257600080fd5b61014d61057d565b341561021557600080fd5b61014d600160a060020a03600435166105ce565b341561023457600080fd5b61014d61068d565b341561024757600080fd5b61014d610713565b341561025a57600080fd5b61014d600160a060020a0360043516610749565b341561027957600080fd5b61028d600160a060020a036004351661078b565b60405190815260200160405180910390f35b34156102aa57600080fd5b61011e6107f4565b34156102bd57600080fd5b61028d610803565b34156102d057600080fd5b61018d61087c565b34156102e357600080fd5b61014d610885565b34156102f657600080fd5b61018d6108e2565b341561030957600080fd5b61014d600160a060020a0360043516610901565b341561032857600080fd5b61018d6109a9565b341561033b57600080fd5b61014d600160a060020a03600435166109ae565b341561035a57600080fd5b61014d610a49565b600073__AddressSet____________________________635c2125a7600384846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b15156103c257600080fd5b6102c65a03f415156103d357600080fd5b50505060405180519392505050565b6103ea61087c565b15801561040c57506000600254610100900460ff16600381111561040a57fe5b145b151561041757600080fd5b61042033610520565b151561042b57600080fd5b6104336109a9565b151561043e57600080fd5b6002805461ff0019166101001790557fed1cd0670ee0c0017f550451a038818c696d0b6a9d6ce5b369e44275573cf9b060405160405180910390a1565b60005433600160a060020a0390811691161461049657600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b600073__AddressSet____________________________63758241e0600384846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b15156103c257600080fd5b6000600160a060020a038216158015906105695750600054600160a060020a03838116911614806105695750600160a060020a03821660009081526001602052604090205460ff165b92915050565b600254610100900460ff1681565b61058633610520565b151561059157600080fd5b6002805461ff0019166103001790557f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf60405160405180910390a1565b6105d661087c565b1580156105f857506000600254610100900460ff1660038111156105f657fe5b145b151561060357600080fd5b61060c33610520565b151561061757600080fd5b73__AddressSet____________________________63e134066a60038360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561067657600080fd5b6102c65a03f4151561068757600080fd5b50505050565b61069561087c565b1580156106b757506001600254610100900460ff1660038111156106b557fe5b145b15156106c257600080fd5b6106cb33610520565b15156106d657600080fd5b6002805461ff0019166102001790557f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1565b61071c33610520565b151561072757600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461076457600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600073__AddressSet____________________________6318c40249600384846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b15156103c257600080fd5b600054600160a060020a031681565b600073__AddressSet____________________________63913aa6cd6003836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561085d57600080fd5b6102c65a03f4151561086e57600080fd5b505050604051805191505090565b60025460ff1690565b61088e33610520565b151561089957600080fd5b60025460ff1615156108aa57600080fd5b6002805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b600060028054610100900460ff1660038111156108fb57fe5b14905090565b61090961087c565b15801561092b57506000600254610100900460ff16600381111561092957fe5b145b151561093657600080fd5b61093f33610520565b151561094a57600080fd5b73__AddressSet____________________________63f9802f8560038360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561067657600080fd5b600190565b60005433600160a060020a039081169116146109c957600080fd5b600160a060020a03811615156109de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610a5233610520565b1515610a5d57600080fd5b60025460ff1615610a6d57600080fd5b6002805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a15600a165627a7a7230582060c9b9bfc991cac8af54f33a961fdeabe51e538d85a6c249c0884bb1ceb349800029",
"deployedBytecode": "0x6060604052600436106101035763ffffffff60e060020a600035041663068bcd8d81146101085780630f15f4c01461013a5780631785f53c1461014f5780631e1c6a071461016e57806324d7806c146101a1578063265050b6146101c057806335a063b4146101f75780633b7d09461461020a57806343d726d6146102295780635e898dac1461023c578063704802751461024f578063870638501461026e5780638da5cb5b1461029f5780638eec5d70146102b2578063a4e2d634146102c5578063a69df4b5146102d8578063c2b6b58c146102eb578063d914cd4b146102fe578063f098fe471461031d578063f2fde38b14610330578063f83d08ba1461034f575b600080fd5b341561011357600080fd5b61011e600435610362565b604051600160a060020a03909116815260200160405180910390f35b341561014557600080fd5b61014d6103e2565b005b341561015a57600080fd5b61014d600160a060020a036004351661047b565b341561017957600080fd5b61018d600160a060020a03600435166104b7565b604051901515815260200160405180910390f35b34156101ac57600080fd5b61018d600160a060020a0360043516610520565b34156101cb57600080fd5b6101d361056f565b604051808260038111156101e357fe5b60ff16815260200191505060405180910390f35b341561020257600080fd5b61014d61057d565b341561021557600080fd5b61014d600160a060020a03600435166105ce565b341561023457600080fd5b61014d61068d565b341561024757600080fd5b61014d610713565b341561025a57600080fd5b61014d600160a060020a0360043516610749565b341561027957600080fd5b61028d600160a060020a036004351661078b565b60405190815260200160405180910390f35b34156102aa57600080fd5b61011e6107f4565b34156102bd57600080fd5b61028d610803565b34156102d057600080fd5b61018d61087c565b34156102e357600080fd5b61014d610885565b34156102f657600080fd5b61018d6108e2565b341561030957600080fd5b61014d600160a060020a0360043516610901565b341561032857600080fd5b61018d6109a9565b341561033b57600080fd5b61014d600160a060020a03600435166109ae565b341561035a57600080fd5b61014d610a49565b600073__AddressSet____________________________635c2125a7600384846040516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b15156103c257600080fd5b6102c65a03f415156103d357600080fd5b50505060405180519392505050565b6103ea61087c565b15801561040c57506000600254610100900460ff16600381111561040a57fe5b145b151561041757600080fd5b61042033610520565b151561042b57600080fd5b6104336109a9565b151561043e57600080fd5b6002805461ff0019166101001790557fed1cd0670ee0c0017f550451a038818c696d0b6a9d6ce5b369e44275573cf9b060405160405180910390a1565b60005433600160a060020a0390811691161461049657600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b600073__AddressSet____________________________63758241e0600384846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b15156103c257600080fd5b6000600160a060020a038216158015906105695750600054600160a060020a03838116911614806105695750600160a060020a03821660009081526001602052604090205460ff165b92915050565b600254610100900460ff1681565b61058633610520565b151561059157600080fd5b6002805461ff0019166103001790557f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf60405160405180910390a1565b6105d661087c565b1580156105f857506000600254610100900460ff1660038111156105f657fe5b145b151561060357600080fd5b61060c33610520565b151561061757600080fd5b73__AddressSet____________________________63e134066a60038360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561067657600080fd5b6102c65a03f4151561068757600080fd5b50505050565b61069561087c565b1580156106b757506001600254610100900460ff1660038111156106b557fe5b145b15156106c257600080fd5b6106cb33610520565b15156106d657600080fd5b6002805461ff0019166102001790557f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1565b61071c33610520565b151561072757600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461076457600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600073__AddressSet____________________________6318c40249600384846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160206040518083038186803b15156103c257600080fd5b600054600160a060020a031681565b600073__AddressSet____________________________63913aa6cd6003836040516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b151561085d57600080fd5b6102c65a03f4151561086e57600080fd5b505050604051805191505090565b60025460ff1690565b61088e33610520565b151561089957600080fd5b60025460ff1615156108aa57600080fd5b6002805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b600060028054610100900460ff1660038111156108fb57fe5b14905090565b61090961087c565b15801561092b57506000600254610100900460ff16600381111561092957fe5b145b151561093657600080fd5b61093f33610520565b151561094a57600080fd5b73__AddressSet____________________________63f9802f8560038360405160e060020a63ffffffff85160281526004810192909252600160a060020a0316602482015260440160006040518083038186803b151561067657600080fd5b600190565b60005433600160a060020a039081169116146109c957600080fd5b600160a060020a03811615156109de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610a5233610520565b1515610a5d57600080fd5b60025460ff1615610a6d57600080fd5b6002805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a15600a165627a7a7230582060c9b9bfc991cac8af54f33a961fdeabe51e538d85a6c249c0884bb1ceb349800029",
"sourceMap": "1168:747:6:-;;;1183:22:16;;;-1:-1:-1;;1326:59:15;;;-1:-1:-1;494:18:21;;-1:-1:-1;;;;;;494:18:21;502:10;-1:-1:-1;;;;;494:18:21;;;;1168:747:6;;;;;;;;",
"deployedSourceMap": "1168:747:6:-;;;;;;;;;-1:-1:-1;;;1168:747:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:109;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1411:109:6;;;;;;;;;;;;;;2006:148:15;;;;;;;;;;;;;;1460:95:0;;;;;;;;;;-1:-1:-1;;;;;1460:95:0;;;;;1808:105:6;;;;;;;;;;-1:-1:-1;;;;;1808:105:6;;;;;;;;;;;;;;;;;;;;;;1212:145:0;;;;;;;;;;-1:-1:-1;;;;;1212:145:0;;;;;1326:59:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:103;;;;;;;;;;;;1715:87:6;;;;;;;;;;-1:-1:-1;;;;;1715:87:6;;;;;2160:108:15;;;;;;;;;;;;1561:84:0;;;;;;;;;;;;1363:91;;;;;;;;;;-1:-1:-1;;;;;1363:91:0;;;;;1296:109:6;;;;;;;;;;-1:-1:-1;;;;;1296:109:6;;;;;;;;;;;;;;;;;;;;238:20:21;;;;;;;;;;;;1526:96:6;;;;;;;;;;;;1355:84:16;;;;;;;;;;;;1540:92;;;;;;;;;;;;1720:112:15;;;;;;;;;;;;1628:81:6;;;;;;;;;;-1:-1:-1;;;;;1628:81:6;;;;;1838:162:15;;;;;;;;;;;;827:169:21;;;;;;;;;;-1:-1:-1;;;;;827:169:21;;;;;1445:89:16;;;;;;;;;;;;1411:109:6;1467:7;1493:13;;:7;1507:5;1467:7;1493:20;;;;;;;-1:-1:-1;;;1493:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:109;-1:-1:-1;;;1411:109:6:o;2006:148:15:-;1529:10;:8;:10::i;:::-;1528:11;:54;;;;-1:-1:-1;1560:22:15;1543:13;;;;;;;:39;;;;;;;;;1528:54;1520:63;;;;;;;;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;2066:13:15;:11;:13::i;:::-;2058:22;;;;;;;;2090:13;:36;;-1:-1:-1;;2090:36:15;;;;;2136:11;;;;;;;;;;2006:148::o;1460:95:0:-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1522:18:0;1543:5;1522:18;;;:12;:18;;;;;:26;;-1:-1:-1;;1522:26:0;;;1460:95::o;1808:105:6:-;1864:4;1887:16;;:7;1904:1;1864:4;1887:19;;;;;;;-1:-1:-1;;;1887:19:6;;;;;;;;;;;;;-1:-1:-1;;;;;1887:19:6;;;;;;;;;;;;;;;;;;;;;;;;1212:145:0;1268:4;-1:-1:-1;;;;;1291:18:0;;;;;;:59;;-1:-1:-1;1322:5:0;;-1:-1:-1;;;;;1314:13:0;;;1322:5;;1314:13;;:35;;-1:-1:-1;;;;;;1331:18:0;;;;;;:12;:18;;;;;;;;1314:35;1284:66;1212:145;-1:-1:-1;;1212:145:0:o;1326:59:15:-;;;;;;;;;:::o;2274:103::-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;2314:13:15;:37;;-1:-1:-1;;2314:37:15;;;;;2361:9;;;;;;;;;;2274:103::o;1715:87:6:-;1529:10:15;:8;:10::i;:::-;1528:11;:54;;;;-1:-1:-1;1560:22:15;1543:13;;;;;;;:39;;;;;;;;;1528:54;1520:63;;;;;;;;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1778:14:6;;:7;1793:1;1778:17;;-1:-1:-1;;;1778:17:6;;;;;;;;;;;;;-1:-1:-1;;;;;1778:17:6;;;;;;;-1:-1:-1;1778:17:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1715:87;:::o;2160:108:15:-;1644:10;:8;:10::i;:::-;1643:11;:52;;;;-1:-1:-1;1675:20:15;1658:13;;;;;;;:37;;;;;;;;;1643:52;1635:61;;;;;;;;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;2223:20:15;2207:36;;-1:-1:-1;;2207:36:15;;;;;2253:8;;;;;;;;;;2160:108::o;1561:84:0:-;1168:19;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1619:10:0;1606:24;1633:5;1606:24;;;:12;:24;;;;;:32;;-1:-1:-1;;1606:32:0;;;1561:84::o;1363:91::-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1422:18:0;;;;;1443:4;1422:18;;;;;;;;:25;;-1:-1:-1;;1422:25:0;;;;;;1363:91::o;1296:109:6:-;1354:7;1380:15;;:7;1396:1;1354:7;1380:18;;;;;;;-1:-1:-1;;;1380:18:6;;;;;;;;;;;;;-1:-1:-1;;;;;1380:18:6;;;;;;;;;;;;;;;;;;;;;;;;238:20:21;;;-1:-1:-1;;;;;238:20:21;;:::o;1526:96:6:-;1575:7;1601:12;;:7;1575;1601:14;;;;;;;-1:-1:-1;;;1601:14:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1526:96:6;:::o;1355:84:16:-;1423:9;;;;1355:84;:::o;1540:92::-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1248:9:16;;;;1240:18;;;;;;;;1588:9;:17;;-1:-1:-1;;1588:17:16;;;1615:10;;;;;;;;;;1540:92::o;1720:112:15:-;1765:4;1805:20;1788:13;;;;;;;:37;;;;;;;;;1781:44;;1720:112;:::o;1628:81:6:-;1529:10:15;:8;:10::i;:::-;1528:11;:54;;;;-1:-1:-1;1560:22:15;1543:13;;;;;;;:39;;;;;;;;;1528:54;1520:63;;;;;;;;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1688:11:6;;:7;1700:1;1688:14;;-1:-1:-1;;;1688:14:6;;;;;;;;;;;;;-1:-1:-1;;;;;1688:14:6;;;;;;;-1:-1:-1;1688:14:6;;;;;;;;;;;;;;;;1838:162:15;1989:4;1838:162;:::o;827:169:21:-;647:5;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;903:22:21;;;;895:31;;;;;;953:5;;-1:-1:-1;;;;;932:37:21;;;;953:5;932:37;;;;;;;;;;975:5;:16;;-1:-1:-1;;975:16:21;-1:-1:-1;;;;;975:16:21;;;;;;;;;;827:169::o;1445:89:16:-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1321:9:16;;;;1320:10;1312:19;;;;;;1493:9;:16;;-1:-1:-1;;1493:16:16;1505:4;1493:16;;;1519:8;;;;;;;;;;1445:89::o",
"source": "// ------------------------------------------------------------------------------\n// This file is part of netvote.\n//\n// netvote is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// netvote is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with solidity. If not, see <http://www.gnu.org/licenses/>\n//\n// (c) 2017 netvote contributors.\n//------------------------------------------------------------------------------\n\npragma solidity ^0.4.17;\n\nimport \"../../state/ElectionPhaseable.sol\";\nimport \"../../lib/AddressSet.sol\";\n\n\n/**\n * @title PoolRegistry\n * @dev Hooks for iterating over a list of pools. This uses an AddressSet\n * which prevents duplicates and allows for removal.\n * Note: Order is not guaranteed.\n */\ncontract PoolRegistry is ElectionPhaseable {\n using AddressSet for AddressSet.SetData;\n\n AddressSet.SetData poolSet;\n\n function getPoolIndex(address p) public constant returns (uint256) {\n return poolSet.indexOf(p);\n }\n\n function getPool(uint256 index) public constant returns(address) {\n return poolSet.getAt(index);\n }\n\n function getPoolCount() public constant returns (uint256) {\n return poolSet.size();\n }\n\n function addPool(address p) public building admin {\n poolSet.put(p);\n }\n\n function removePool(address p) public building admin {\n poolSet.remove(p);\n }\n\n function poolExists(address p) public constant returns (bool) {\n return poolSet.contains(p);\n }\n}",
"sourcePath": "/Users/slanders/netvote/elections-solidity/contracts/elections/links/PoolRegistry.sol",
"ast": {
"attributes": {
"absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/elections/links/PoolRegistry.sol",
"exportedSymbols": {
"PoolRegistry": [
800
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".17"
]
},
"id": 709,
"name": "PragmaDirective",
"src": "868:24:6"
},
{
"attributes": {
"SourceUnit": 2130,
"absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/state/ElectionPhaseable.sol",
"file": "../../state/ElectionPhaseable.sol",
"scope": 801,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 710,
"name": "ImportDirective",
"src": "894:43:6"
},
{
"attributes": {
"SourceUnit": 1734,
"absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/lib/AddressSet.sol",
"file": "../../lib/AddressSet.sol",
"scope": 801,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 711,
"name": "ImportDirective",
"src": "938:34:6"
},
{
"attributes": {
"contractDependencies": [
84,
2129,
2197,
2703
],
"contractKind": "contract",
"documentation": "@title PoolRegistry\n@dev Hooks for iterating over a list of pools. This uses an AddressSet\nwhich prevents duplicates and allows for removal.\nNote: Order is not guaranteed.",
"fullyImplemented": true,
"linearizedBaseContracts": [
800,
2129,
2197,
84,
2703
],
"name": "PoolRegistry",
"scope": 801
},
"children": [
{
"attributes": {
"arguments": [
null
]
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "ElectionPhaseable",
"referencedDeclaration": 2129,
"type": "contract ElectionPhaseable"
},
"id": 712,
"name": "UserDefinedTypeName",
"src": "1193:17:6"
}
],
"id": 713,
"name": "InheritanceSpecifier",
"src": "1193:17:6"
},
{
"children": [
{
"attributes": {
"contractScope": null,
"name": "AddressSet",
"referencedDeclaration": 1733,
"type": "library AddressSet"
},
"id": 714,
"name": "UserDefinedTypeName",
"src": "1223:10:6"
},
{
"attributes": {
"contractScope": null,
"name": "AddressSet.SetData",
"referencedDeclaration": 1556,
"type": "struct AddressSet.SetData storage pointer"
},
"id": 715,
"name": "UserDefinedTypeName",
"src": "1238:18:6"
}
],
"id": 716,
"name": "UsingForDirective",
"src": "1217:40:6"
},
{
"attributes": {
"constant": false,
"name": "poolSet",
"scope": 800,
"stateVariable": true,
"storageLocation": "default",
"type": "struct AddressSet.SetData storage ref",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "AddressSet.SetData",
"referencedDeclaration": 1556,
"type": "struct AddressSet.SetData storage pointer"
},
"id": 717,
"name": "UserDefinedTypeName",
"src": "1263:18:6"
}
],
"id": 718,
"name": "VariableDeclaration",
"src": "1263:26:6"
},
{
"attributes": {
"constant": true,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getPoolIndex",
"payable": false,
"scope": 800,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "p",
"scope": 731,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 719,
"name": "ElementaryTypeName",
"src": "1318:7:6"
}
],
"id": 720,
"name": "VariableDeclaration",
"src": "1318:9:6"
}
],
"id": 721,
"name": "ParameterList",
"src": "1317:11:6"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 731,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 722,
"name": "ElementaryTypeName",
"src": "1354:7:6"
}
],
"id": 723,
"name": "VariableDeclaration",
"src": "1354:7:6"
}
],
"id": 724,
"name": "ParameterList",
"src": "1353:9:6"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 724
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "indexOf",
"referencedDeclaration": 1571,
"type": "function (struct AddressSet.SetData storage pointer,address) view returns (uint256)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 718,
"type": "struct AddressSet.SetData storage ref",
"value": "poolSet"
},
"id": 725,
"name": "Identifier",
"src": "1380:7:6"
}
],
"id": 726,
"name": "MemberAccess",
"src": "1380:15:6"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 720,
"type": "address",
"value": "p"
},
"id": 727,
"name": "Identifier",
"src": "1396:1:6"
}
],
"id": 728,
"name": "FunctionCall",
"src": "1380:18:6"
}
],
"id": 729,
"name": "Return",
"src": "1373:25:6"
}
],
"id": 730,
"name": "Block",
"src": "1363:42:6"
}
],
"id": 731,
"name": "FunctionDefinition",
"src": "1296:109:6"
},
{
"attributes": {
"constant": true,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getPool",
"payable": false,
"scope": 800,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "index",
"scope": 744,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 732,
"name": "ElementaryTypeName",
"src": "1428:7:6"
}
],
"id": 733,
"name": "VariableDeclaration",
"src": "1428:13:6"
}
],
"id": 734,
"name": "ParameterList",
"src": "1427:15:6"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 744,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 735,
"name": "ElementaryTypeName",
"src": "1467:7:6"
}
],
"id": 736,
"name": "VariableDeclaration",
"src": "1467:7:6"
}
],
"id": 737,
"name": "ParameterList",
"src": "1466:9:6"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 737
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "address",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "getAt",
"referencedDeclaration": 1586,
"type": "function (struct AddressSet.SetData storage pointer,uint256) view returns (address)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 718,
"type": "struct AddressSet.SetData storage ref",
"value": "poolSet"
},
"id": 738,
"name": "Identifier",
"src": "1493:7:6"
}
],
"id": 739,
"name": "MemberAccess",
"src": "1493:13:6"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 733,
"type": "uint256",
"value": "index"
},
"id": 740,
"name": "Identifier",
"src": "1507:5:6"
}
],
"id": 741,
"name": "FunctionCall",
"src": "1493:20:6"
}
],
"id": 742,
"name": "Return",
"src": "1486:27:6"
}
],
"id": 743,
"name": "Block",
"src": "1476:44:6"
}
],
"id": 744,
"name": "FunctionDefinition",
"src": "1411:109:6"
},
{
"attributes": {
"constant": true,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getPoolCount",
"payable": false,
"scope": 800,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 745,
"name": "ParameterList",
"src": "1547:2:6"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 754,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 746,
"name": "ElementaryTypeName",
"src": "1575:7:6"
}
],
"id": 747,
"name": "VariableDeclaration",
"src": "1575:7:6"
}
],
"id": 748,
"name": "ParameterList",
"src": "1574:9:6"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 748
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"member_name": "size",
"referencedDeclaration": 1613,
"type": "function (struct AddressSet.SetData storage pointer) view returns (uint256)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 718,
"type": "struct AddressSet.SetData storage ref",
"value": "poolSet"
},
"id": 749,
"name": "Identifier",
"src": "1601:7:6"
}
],
"id": 750,
"name": "MemberAccess",
"src": "1601:12:6"
}
],
"id": 751,
"name": "FunctionCall",
"src": "1601:14:6"
}
],
"id": 752,
"name": "Return",
"src": "1594:21:6"
}
],
"id": 753,
"name": "Block",
"src": "1584:38:6"
}
],
"id": 754,
"name": "FunctionDefinition",
"src": "1526:96:6"
},
{
"attributes": {
"constant": false,
"implemented": true,
"isConstructor": false,
"name": "addPool",
"payable": false,
"scope": 800,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "p",
"scope": 770,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 755,
"name": "ElementaryTypeName",
"src": "1645:7:6"
}
],
"id": 756,
"name": "VariableDeclaration",
"src": "1645:9:6"
}
],
"id": 757,
"name": "ParameterList",
"src": "1644:11:6"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 762,
"name": "ParameterList",
"src": "1678:0:6"
},
{
"attributes": {
"arguments": [
null
]
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 2043,
"type": "modifier ()",
"value": "building"
},
"id": 758,
"name": "Identifier",
"src": "1663:8:6"
}
],
"id": 759,
"name": "ModifierInvocation",
"src": "1663:8:6"
},
{
"attributes": {
"arguments": [
null
]
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 19,
"type": "modifier ()",
"value": "admin"
},
"id": 760,
"name": "Identifier",