From d5275fa798a47a5928f5b97477db42c9511d319f Mon Sep 17 00:00:00 2001 From: MiniFrenchBread <103425574+MiniFrenchBread@users.noreply.github.com> Date: Wed, 2 Apr 2025 18:26:10 +0800 Subject: [PATCH] feat: set mint cap --- .gitignore | 1 + .../interfaces/abis/IWrappedA0GIBase.json | 23 + .../377589efa765dec208356377872d3755.json | 1 - .../c79ff14473359160d0c7a65892d5cb52.json | 1 - .../contracts/IDASigners.sol/BN254.dbg.json | 4 - .../contracts/IDASigners.sol/BN254.json | 10 - .../IDASigners.sol/IDASigners.dbg.json | 4 - .../contracts/IDASigners.sol/IDASigners.json | 484 ------------------ .../IWrappedA0GIBase.dbg.json | 4 - .../IWrappedA0GIBase.json | 96 ---- .../build/cache/solidity-files-cache.json | 78 --- .../interfaces/contracts/IWrappedA0GIBase.sol | 13 + .../precompiles/wrapped_a0gi_base/contract.go | 23 +- .../precompiles/wrapped_a0gi_base/errors.go | 1 + core/vm/wrapped_a0gi_base.go | 58 ++- 15 files changed, 116 insertions(+), 685 deletions(-) delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/build-info/377589efa765dec208356377872d3755.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/build-info/c79ff14473359160d0c7a65892d5cb52.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.dbg.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.dbg.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.dbg.json delete mode 100644 core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.json delete mode 100644 core/vm/precompiles/interfaces/build/cache/solidity-files-cache.json diff --git a/.gitignore b/.gitignore index c77b4ec853..56ad6a476d 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ tests/spec-tests/ # Precompiles core/vm/Precompiles/interfaces/node_modules +core/vm/Precompiles/interfaces/build diff --git a/core/vm/precompiles/interfaces/abis/IWrappedA0GIBase.json b/core/vm/precompiles/interfaces/abis/IWrappedA0GIBase.json index 064863b1f1..41f93fbc04 100644 --- a/core/vm/precompiles/interfaces/abis/IWrappedA0GIBase.json +++ b/core/vm/precompiles/interfaces/abis/IWrappedA0GIBase.json @@ -83,5 +83,28 @@ ], "stateMutability": "view", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "minter", + "type": "address" + }, + { + "internalType": "uint256", + "name": "cap", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "initialSupply", + "type": "uint256" + } + ], + "name": "setMinterCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ] diff --git a/core/vm/precompiles/interfaces/build/artifacts/build-info/377589efa765dec208356377872d3755.json b/core/vm/precompiles/interfaces/build/artifacts/build-info/377589efa765dec208356377872d3755.json deleted file mode 100644 index a92cda566d..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/build-info/377589efa765dec208356377872d3755.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"377589efa765dec208356377872d3755","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"contracts/IDASigners.sol":{"content":"// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity >=0.8.0;\n\nlibrary BN254 {\n struct G1Point {\n uint X;\n uint Y;\n }\n\n // Encoding of field elements is: X[1] * i + X[0]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n}\n\ninterface IDASigners {\n /*=== struct ===*/\n struct SignerDetail {\n address signer;\n string socket;\n BN254.G1Point pkG1;\n BN254.G2Point pkG2;\n }\n\n struct Params {\n uint tokensPerVote;\n uint maxVotesPerSigner;\n uint maxQuorums;\n uint epochBlocks;\n uint encodedSlices;\n }\n\n /*=== event ===*/\n event NewSigner(\n address indexed signer,\n BN254.G1Point pkG1,\n BN254.G2Point pkG2\n );\n event SocketUpdated(address indexed signer, string socket);\n\n /*=== function ===*/\n function params() external view returns (Params memory);\n\n function epochNumber() external view returns (uint);\n\n function quorumCount(uint _epoch) external view returns (uint);\n\n function isSigner(address _account) external view returns (bool);\n\n function getSigner(\n address[] memory _account\n ) external view returns (SignerDetail[] memory);\n\n function getQuorum(\n uint _epoch,\n uint _quorumId\n ) external view returns (address[] memory);\n\n function getQuorumRow(\n uint _epoch,\n uint _quorumId,\n uint32 _rowIndex\n ) external view returns (address);\n\n function registerSigner(\n SignerDetail memory _signer,\n BN254.G1Point memory _signature\n ) external;\n\n function updateSocket(string memory _socket) external;\n\n function registeredEpoch(\n address _account,\n uint _epoch\n ) external view returns (bool);\n\n function registerNextEpoch(BN254.G1Point memory _signature) external;\n\n function makeEpoch() external;\n\n function getAggPkG1(\n uint _epoch,\n uint _quorumId,\n bytes memory _quorumBitmap\n )\n external\n view\n returns (BN254.G1Point memory aggPkG1, uint total, uint hit);\n}\n"}},"settings":{"evmVersion":"istanbul","optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/IDASigners.sol":{"ast":{"absolutePath":"contracts/IDASigners.sol","exportedSymbols":{"BN254":[16],"IDASigners":[159]},"id":160,"license":"LGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"BN254","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":16,"linearizedBaseContracts":[16],"name":"BN254","nameLocation":"76:5:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BN254.G1Point","id":6,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"X","nameLocation":"118:1:0","nodeType":"VariableDeclaration","scope":6,"src":"113:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"113:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"Y","nameLocation":"134:1:0","nodeType":"VariableDeclaration","scope":6,"src":"129:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"129:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"G1Point","nameLocation":"95:7:0","nodeType":"StructDefinition","scope":16,"src":"88:54:0","visibility":"public"},{"canonicalName":"BN254.G2Point","id":15,"members":[{"constant":false,"id":10,"mutability":"mutable","name":"X","nameLocation":"235:1:0","nodeType":"VariableDeclaration","scope":15,"src":"227:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":7,"name":"uint","nodeType":"ElementaryTypeName","src":"227:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9,"length":{"hexValue":"32","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"227:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"Y","nameLocation":"254:1:0","nodeType":"VariableDeclaration","scope":15,"src":"246:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":11,"name":"uint","nodeType":"ElementaryTypeName","src":"246:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13,"length":{"hexValue":"32","id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"246:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"}],"name":"G2Point","nameLocation":"209:7:0","nodeType":"StructDefinition","scope":16,"src":"202:60:0","visibility":"public"}],"scope":160,"src":"68:196:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IDASigners","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":159,"linearizedBaseContracts":[159],"name":"IDASigners","nameLocation":"276:10:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IDASigners.SignerDetail","id":27,"members":[{"constant":false,"id":18,"mutability":"mutable","name":"signer","nameLocation":"354:6:0","nodeType":"VariableDeclaration","scope":27,"src":"346:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"socket","nameLocation":"377:6:0","nodeType":"VariableDeclaration","scope":27,"src":"370:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":19,"name":"string","nodeType":"ElementaryTypeName","src":"370:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"pkG1","nameLocation":"407:4:0","nodeType":"VariableDeclaration","scope":27,"src":"393:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":22,"nodeType":"UserDefinedTypeName","pathNode":{"id":21,"name":"BN254.G1Point","nameLocations":["393:5:0","399:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"393:13:0"},"referencedDeclaration":6,"src":"393:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":26,"mutability":"mutable","name":"pkG2","nameLocation":"435:4:0","nodeType":"VariableDeclaration","scope":27,"src":"421:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"},"typeName":{"id":25,"nodeType":"UserDefinedTypeName","pathNode":{"id":24,"name":"BN254.G2Point","nameLocations":["421:5:0","427:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":15,"src":"421:13:0"},"referencedDeclaration":15,"src":"421:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"}},"visibility":"internal"}],"name":"SignerDetail","nameLocation":"323:12:0","nodeType":"StructDefinition","scope":159,"src":"316:130:0","visibility":"public"},{"canonicalName":"IDASigners.Params","id":38,"members":[{"constant":false,"id":29,"mutability":"mutable","name":"tokensPerVote","nameLocation":"481:13:0","nodeType":"VariableDeclaration","scope":38,"src":"476:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"476:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"maxVotesPerSigner","nameLocation":"509:17:0","nodeType":"VariableDeclaration","scope":38,"src":"504:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30,"name":"uint","nodeType":"ElementaryTypeName","src":"504:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"maxQuorums","nameLocation":"541:10:0","nodeType":"VariableDeclaration","scope":38,"src":"536:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32,"name":"uint","nodeType":"ElementaryTypeName","src":"536:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"epochBlocks","nameLocation":"566:11:0","nodeType":"VariableDeclaration","scope":38,"src":"561:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34,"name":"uint","nodeType":"ElementaryTypeName","src":"561:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37,"mutability":"mutable","name":"encodedSlices","nameLocation":"592:13:0","nodeType":"VariableDeclaration","scope":38,"src":"587:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36,"name":"uint","nodeType":"ElementaryTypeName","src":"587:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Params","nameLocation":"459:6:0","nodeType":"StructDefinition","scope":159,"src":"452:160:0","visibility":"public"},{"anonymous":false,"eventSelector":"679917c2006df1daaa987a56bf1d66e99764d5ad317892d9e83a6eb4e3f051e7","id":48,"name":"NewSigner","nameLocation":"646:9:0","nodeType":"EventDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"681:6:0","nodeType":"VariableDeclaration","scope":48,"src":"665:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39,"name":"address","nodeType":"ElementaryTypeName","src":"665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43,"indexed":false,"mutability":"mutable","name":"pkG1","nameLocation":"711:4:0","nodeType":"VariableDeclaration","scope":48,"src":"697:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":42,"nodeType":"UserDefinedTypeName","pathNode":{"id":41,"name":"BN254.G1Point","nameLocations":["697:5:0","703:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"697:13:0"},"referencedDeclaration":6,"src":"697:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":46,"indexed":false,"mutability":"mutable","name":"pkG2","nameLocation":"739:4:0","nodeType":"VariableDeclaration","scope":48,"src":"725:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct BN254.G2Point"},"typeName":{"id":45,"nodeType":"UserDefinedTypeName","pathNode":{"id":44,"name":"BN254.G2Point","nameLocations":["725:5:0","731:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":15,"src":"725:13:0"},"referencedDeclaration":15,"src":"725:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"}},"visibility":"internal"}],"src":"655:94:0"},"src":"640:110:0"},{"anonymous":false,"eventSelector":"09617a966176a40f8f1410768b118506db0096484acd5811064fcc12038798de","id":54,"name":"SocketUpdated","nameLocation":"761:13:0","nodeType":"EventDefinition","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"791:6:0","nodeType":"VariableDeclaration","scope":54,"src":"775:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"775:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"indexed":false,"mutability":"mutable","name":"socket","nameLocation":"806:6:0","nodeType":"VariableDeclaration","scope":54,"src":"799:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51,"name":"string","nodeType":"ElementaryTypeName","src":"799:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"774:39:0"},"src":"755:59:0"},{"functionSelector":"cff0ab96","id":60,"implemented":false,"kind":"function","modifiers":[],"name":"params","nameLocation":"854:6:0","nodeType":"FunctionDefinition","parameters":{"id":55,"nodeType":"ParameterList","parameters":[],"src":"860:2:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60,"src":"886:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$38_memory_ptr","typeString":"struct IDASigners.Params"},"typeName":{"id":57,"nodeType":"UserDefinedTypeName","pathNode":{"id":56,"name":"Params","nameLocations":["886:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":38,"src":"886:6:0"},"referencedDeclaration":38,"src":"886:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$38_storage_ptr","typeString":"struct IDASigners.Params"}},"visibility":"internal"}],"src":"885:15:0"},"scope":159,"src":"845:56:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f4145a83","id":65,"implemented":false,"kind":"function","modifiers":[],"name":"epochNumber","nameLocation":"916:11:0","nodeType":"FunctionDefinition","parameters":{"id":61,"nodeType":"ParameterList","parameters":[],"src":"927:2:0"},"returnParameters":{"id":64,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65,"src":"953:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:6:0"},"scope":159,"src":"907:52:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ecba503","id":72,"implemented":false,"kind":"function","modifiers":[],"name":"quorumCount","nameLocation":"974:11:0","nodeType":"FunctionDefinition","parameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67,"mutability":"mutable","name":"_epoch","nameLocation":"991:6:0","nodeType":"VariableDeclaration","scope":72,"src":"986:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"986:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"985:13:0"},"returnParameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72,"src":"1022:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69,"name":"uint","nodeType":"ElementaryTypeName","src":"1022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1021:6:0"},"scope":159,"src":"965:63:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7df73e27","id":79,"implemented":false,"kind":"function","modifiers":[],"name":"isSigner","nameLocation":"1043:8:0","nodeType":"FunctionDefinition","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"_account","nameLocation":"1060:8:0","nodeType":"VariableDeclaration","scope":79,"src":"1052:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1051:18:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79,"src":"1093:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76,"name":"bool","nodeType":"ElementaryTypeName","src":"1093:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1092:6:0"},"scope":159,"src":"1034:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d1f5e5f8","id":89,"implemented":false,"kind":"function","modifiers":[],"name":"getSigner","nameLocation":"1114:9:0","nodeType":"FunctionDefinition","parameters":{"id":83,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"_account","nameLocation":"1150:8:0","nodeType":"VariableDeclaration","scope":89,"src":"1133:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"1133:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81,"nodeType":"ArrayTypeName","src":"1133:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1123:41:0"},"returnParameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89,"src":"1188:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SignerDetail_$27_memory_ptr_$dyn_memory_ptr","typeString":"struct IDASigners.SignerDetail[]"},"typeName":{"baseType":{"id":85,"nodeType":"UserDefinedTypeName","pathNode":{"id":84,"name":"SignerDetail","nameLocations":["1188:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":27,"src":"1188:12:0"},"referencedDeclaration":27,"src":"1188:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_storage_ptr","typeString":"struct IDASigners.SignerDetail"}},"id":86,"nodeType":"ArrayTypeName","src":"1188:14:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SignerDetail_$27_storage_$dyn_storage_ptr","typeString":"struct IDASigners.SignerDetail[]"}},"visibility":"internal"}],"src":"1187:23:0"},"scope":159,"src":"1105:106:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6ab6f654","id":99,"implemented":false,"kind":"function","modifiers":[],"name":"getQuorum","nameLocation":"1226:9:0","nodeType":"FunctionDefinition","parameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91,"mutability":"mutable","name":"_epoch","nameLocation":"1250:6:0","nodeType":"VariableDeclaration","scope":99,"src":"1245:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90,"name":"uint","nodeType":"ElementaryTypeName","src":"1245:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"_quorumId","nameLocation":"1271:9:0","nodeType":"VariableDeclaration","scope":99,"src":"1266:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92,"name":"uint","nodeType":"ElementaryTypeName","src":"1266:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1235:51:0"},"returnParameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99,"src":"1310:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":95,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96,"nodeType":"ArrayTypeName","src":"1310:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1309:18:0"},"scope":159,"src":"1217:111:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fa6fcba6","id":110,"implemented":false,"kind":"function","modifiers":[],"name":"getQuorumRow","nameLocation":"1343:12:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_epoch","nameLocation":"1370:6:0","nodeType":"VariableDeclaration","scope":110,"src":"1365:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100,"name":"uint","nodeType":"ElementaryTypeName","src":"1365:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"_quorumId","nameLocation":"1391:9:0","nodeType":"VariableDeclaration","scope":110,"src":"1386:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102,"name":"uint","nodeType":"ElementaryTypeName","src":"1386:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"_rowIndex","nameLocation":"1417:9:0","nodeType":"VariableDeclaration","scope":110,"src":"1410:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104,"name":"uint32","nodeType":"ElementaryTypeName","src":"1410:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1355:77:0"},"returnParameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110,"src":"1456:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"1456:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1455:9:0"},"scope":159,"src":"1334:131:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7ca4dd5e","id":119,"implemented":false,"kind":"function","modifiers":[],"name":"registerSigner","nameLocation":"1480:14:0","nodeType":"FunctionDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113,"mutability":"mutable","name":"_signer","nameLocation":"1524:7:0","nodeType":"VariableDeclaration","scope":119,"src":"1504:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_memory_ptr","typeString":"struct IDASigners.SignerDetail"},"typeName":{"id":112,"nodeType":"UserDefinedTypeName","pathNode":{"id":111,"name":"SignerDetail","nameLocations":["1504:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":27,"src":"1504:12:0"},"referencedDeclaration":27,"src":"1504:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_storage_ptr","typeString":"struct IDASigners.SignerDetail"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"_signature","nameLocation":"1562:10:0","nodeType":"VariableDeclaration","scope":119,"src":"1541:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":115,"nodeType":"UserDefinedTypeName","pathNode":{"id":114,"name":"BN254.G1Point","nameLocations":["1541:5:0","1547:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1541:13:0"},"referencedDeclaration":6,"src":"1541:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"}],"src":"1494:84:0"},"returnParameters":{"id":118,"nodeType":"ParameterList","parameters":[],"src":"1587:0:0"},"scope":159,"src":"1471:117:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0cf4b767","id":124,"implemented":false,"kind":"function","modifiers":[],"name":"updateSocket","nameLocation":"1603:12:0","nodeType":"FunctionDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"_socket","nameLocation":"1630:7:0","nodeType":"VariableDeclaration","scope":124,"src":"1616:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":120,"name":"string","nodeType":"ElementaryTypeName","src":"1616:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1615:23:0"},"returnParameters":{"id":123,"nodeType":"ParameterList","parameters":[],"src":"1647:0:0"},"scope":159,"src":"1594:54:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6c9e560c","id":133,"implemented":false,"kind":"function","modifiers":[],"name":"registeredEpoch","nameLocation":"1663:15:0","nodeType":"FunctionDefinition","parameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"_account","nameLocation":"1696:8:0","nodeType":"VariableDeclaration","scope":133,"src":"1688:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"1688:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"_epoch","nameLocation":"1719:6:0","nodeType":"VariableDeclaration","scope":133,"src":"1714:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":127,"name":"uint","nodeType":"ElementaryTypeName","src":"1714:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1678:53:0"},"returnParameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":133,"src":"1755:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":130,"name":"bool","nodeType":"ElementaryTypeName","src":"1755:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1754:6:0"},"scope":159,"src":"1654:107:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"56a32372","id":139,"implemented":false,"kind":"function","modifiers":[],"name":"registerNextEpoch","nameLocation":"1776:17:0","nodeType":"FunctionDefinition","parameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"_signature","nameLocation":"1815:10:0","nodeType":"VariableDeclaration","scope":139,"src":"1794:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":135,"nodeType":"UserDefinedTypeName","pathNode":{"id":134,"name":"BN254.G1Point","nameLocations":["1794:5:0","1800:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1794:13:0"},"referencedDeclaration":6,"src":"1794:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"}],"src":"1793:33:0"},"returnParameters":{"id":138,"nodeType":"ParameterList","parameters":[],"src":"1835:0:0"},"scope":159,"src":"1767:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5a889f0c","id":142,"implemented":false,"kind":"function","modifiers":[],"name":"makeEpoch","nameLocation":"1851:9:0","nodeType":"FunctionDefinition","parameters":{"id":140,"nodeType":"ParameterList","parameters":[],"src":"1860:2:0"},"returnParameters":{"id":141,"nodeType":"ParameterList","parameters":[],"src":"1871:0:0"},"scope":159,"src":"1842:30:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50b73739","id":158,"implemented":false,"kind":"function","modifiers":[],"name":"getAggPkG1","nameLocation":"1887:10:0","nodeType":"FunctionDefinition","parameters":{"id":149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"_epoch","nameLocation":"1912:6:0","nodeType":"VariableDeclaration","scope":158,"src":"1907:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":143,"name":"uint","nodeType":"ElementaryTypeName","src":"1907:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":146,"mutability":"mutable","name":"_quorumId","nameLocation":"1933:9:0","nodeType":"VariableDeclaration","scope":158,"src":"1928:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":145,"name":"uint","nodeType":"ElementaryTypeName","src":"1928:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":148,"mutability":"mutable","name":"_quorumBitmap","nameLocation":"1965:13:0","nodeType":"VariableDeclaration","scope":158,"src":"1952:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":147,"name":"bytes","nodeType":"ElementaryTypeName","src":"1952:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1897:87:0"},"returnParameters":{"id":157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":152,"mutability":"mutable","name":"aggPkG1","nameLocation":"2053:7:0","nodeType":"VariableDeclaration","scope":158,"src":"2032:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":151,"nodeType":"UserDefinedTypeName","pathNode":{"id":150,"name":"BN254.G1Point","nameLocations":["2032:5:0","2038:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"2032:13:0"},"referencedDeclaration":6,"src":"2032:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":154,"mutability":"mutable","name":"total","nameLocation":"2067:5:0","nodeType":"VariableDeclaration","scope":158,"src":"2062:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":153,"name":"uint","nodeType":"ElementaryTypeName","src":"2062:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":156,"mutability":"mutable","name":"hit","nameLocation":"2079:3:0","nodeType":"VariableDeclaration","scope":158,"src":"2074:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":155,"name":"uint","nodeType":"ElementaryTypeName","src":"2074:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2031:52:0"},"scope":159,"src":"1878:206:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":160,"src":"266:1820:0","usedErrors":[],"usedEvents":[48,54]}],"src":"42:2045:0"},"id":0}},"contracts":{"contracts/IDASigners.sol":{"BN254":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abc43d74fec9de74f3b7a60ee2e0337c23369163d8fb7a1e1cb0037a16d8abfb64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xC4 RETURNDATASIZE PUSH21 0xFEC9DE74F3B7A60EE2E0337C23369163D8FB7A1E1C 0xB0 SUB PUSH27 0x16D8ABFB64736F6C63430008140033000000000000000000000000 ","sourceMap":"68:196:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;68:196:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abc43d74fec9de74f3b7a60ee2e0337c23369163d8fb7a1e1cb0037a16d8abfb64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xC4 RETURNDATASIZE PUSH21 0xFEC9DE74F3B7A60EE2E0337C23369163D8FB7A1E1C 0xB0 SUB PUSH27 0x16D8ABFB64736F6C63430008140033000000000000000000000000 ","sourceMap":"68:196:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IDASigners.sol\":\"BN254\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IDASigners.sol\":{\"keccak256\":\"0x77f38cecc2dd928cbbad6168d05b0aed9fd8b949a3b84cf2c00bc35ecae451e7\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c9c7363b995c112920f863e74f7b14a61731dd6c0e4eee072e3e7f850bd37ada\",\"dweb:/ipfs/QmXGXVWVaNJDw1b4Fv7b1GEdgpeTtnuPSEq8m8Z5dtuucE\"]}},\"version\":1}"},"IDASigners":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"indexed":false,"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"indexed":false,"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"string","name":"socket","type":"string"}],"name":"SocketUpdated","type":"event"},{"inputs":[],"name":"epochNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"},{"internalType":"bytes","name":"_quorumBitmap","type":"bytes"}],"name":"getAggPkG1","outputs":[{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"aggPkG1","type":"tuple"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"hit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"}],"name":"getQuorum","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"},{"internalType":"uint32","name":"_rowIndex","type":"uint32"}],"name":"getQuorumRow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_account","type":"address[]"}],"name":"getSigner","outputs":[{"components":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"string","name":"socket","type":"string"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"internalType":"struct IDASigners.SignerDetail[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"tokensPerVote","type":"uint256"},{"internalType":"uint256","name":"maxVotesPerSigner","type":"uint256"},{"internalType":"uint256","name":"maxQuorums","type":"uint256"},{"internalType":"uint256","name":"epochBlocks","type":"uint256"},{"internalType":"uint256","name":"encodedSlices","type":"uint256"}],"internalType":"struct IDASigners.Params","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"quorumCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"_signature","type":"tuple"}],"name":"registerNextEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"string","name":"socket","type":"string"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"internalType":"struct IDASigners.SignerDetail","name":"_signer","type":"tuple"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"_signature","type":"tuple"}],"name":"registerSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"registeredEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_socket","type":"string"}],"name":"updateSocket","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"epochNumber()":"f4145a83","getAggPkG1(uint256,uint256,bytes)":"50b73739","getQuorum(uint256,uint256)":"6ab6f654","getQuorumRow(uint256,uint256,uint32)":"fa6fcba6","getSigner(address[])":"d1f5e5f8","isSigner(address)":"7df73e27","makeEpoch()":"5a889f0c","params()":"cff0ab96","quorumCount(uint256)":"5ecba503","registerNextEpoch((uint256,uint256))":"56a32372","registerSigner((address,string,(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))":"7ca4dd5e","registeredEpoch(address,uint256)":"6c9e560c","updateSocket(string)":"0cf4b767"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"indexed\":false,\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"name\":\"NewSigner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"SocketUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"epochNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_quorumBitmap\",\"type\":\"bytes\"}],\"name\":\"getAggPkG1\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"aggPkG1\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"}],\"name\":\"getQuorum\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_rowIndex\",\"type\":\"uint32\"}],\"name\":\"getQuorumRow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_account\",\"type\":\"address[]\"}],\"name\":\"getSigner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IDASigners.SignerDetail[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isSigner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"makeEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokensPerVote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotesPerSigner\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxQuorums\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epochBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"encodedSlices\",\"type\":\"uint256\"}],\"internalType\":\"struct IDASigners.Params\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"registerNextEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IDASigners.SignerDetail\",\"name\":\"_signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"registerSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"registeredEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_socket\",\"type\":\"string\"}],\"name\":\"updateSocket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IDASigners.sol\":\"IDASigners\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IDASigners.sol\":{\"keccak256\":\"0x77f38cecc2dd928cbbad6168d05b0aed9fd8b949a3b84cf2c00bc35ecae451e7\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c9c7363b995c112920f863e74f7b14a61731dd6c0e4eee072e3e7f850bd37ada\",\"dweb:/ipfs/QmXGXVWVaNJDw1b4Fv7b1GEdgpeTtnuPSEq8m8Z5dtuucE\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/core/vm/precompiles/interfaces/build/artifacts/build-info/c79ff14473359160d0c7a65892d5cb52.json b/core/vm/precompiles/interfaces/build/artifacts/build-info/c79ff14473359160d0c7a65892d5cb52.json deleted file mode 100644 index 4c4f7657d0..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/build-info/c79ff14473359160d0c7a65892d5cb52.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"c79ff14473359160d0c7a65892d5cb52","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"contracts/IDASigners.sol":{"content":"// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity >=0.8.0;\n\nlibrary BN254 {\n struct G1Point {\n uint X;\n uint Y;\n }\n\n // Encoding of field elements is: X[1] * i + X[0]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n}\n\ninterface IDASigners {\n /*=== struct ===*/\n struct SignerDetail {\n address signer;\n string socket;\n BN254.G1Point pkG1;\n BN254.G2Point pkG2;\n }\n\n struct Params {\n uint tokensPerVote;\n uint maxVotesPerSigner;\n uint maxQuorums;\n uint epochBlocks;\n uint encodedSlices;\n }\n\n /*=== event ===*/\n event NewSigner(\n address indexed signer,\n BN254.G1Point pkG1,\n BN254.G2Point pkG2\n );\n event SocketUpdated(address indexed signer, string socket);\n\n /*=== function ===*/\n function params() external view returns (Params memory);\n\n function epochNumber() external view returns (uint);\n\n function quorumCount(uint _epoch) external view returns (uint);\n\n function isSigner(address _account) external view returns (bool);\n\n function getSigner(\n address[] memory _account\n ) external view returns (SignerDetail[] memory);\n\n function getQuorum(\n uint _epoch,\n uint _quorumId\n ) external view returns (address[] memory);\n\n function getQuorumRow(\n uint _epoch,\n uint _quorumId,\n uint32 _rowIndex\n ) external view returns (address);\n\n function registerSigner(\n SignerDetail memory _signer,\n BN254.G1Point memory _signature\n ) external;\n\n function updateSocket(string memory _socket) external;\n\n function registeredEpoch(\n address _account,\n uint _epoch\n ) external view returns (bool);\n\n function registerNextEpoch(BN254.G1Point memory _signature) external;\n\n function getAggPkG1(\n uint _epoch,\n uint _quorumId,\n bytes memory _quorumBitmap\n )\n external\n view\n returns (BN254.G1Point memory aggPkG1, uint total, uint hit);\n}\n"},"contracts/IWrappedA0GIBase.sol":{"content":"// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity >=0.8.0;\n\nstruct Supply {\n uint256 cap;\n uint256 initialSupply;\n uint256 supply;\n}\n\n/**\n * @title WrappedA0GIBase is a precompile for wrapped a0gi(wA0GI), it enables wA0GI mint/burn native 0g token directly.\n */\ninterface IWrappedA0GIBase {\n /**\n * @dev set the wA0GI address.\n * It is designed to be called by governance module only so it's not implemented at EVM precompile side.\n * @param addr address of wA0GI\n */\n // function setWA0GI(address addr) external;\n\n /**\n * @dev get the wA0GI address.\n */\n function getWA0GI() external view returns (address);\n\n /**\n * @dev set the cap and initial supply for a minter.\n * It is designed to be called by governance module only so it's not implemented at EVM precompile side.\n * @param minter minter address\n * @param cap mint cap\n * @param initialSupply initial mint supply\n */\n // function setMinterCap(address minter, uint256 cap, uint256 initialSupply) external;\n\n /**\n * @dev get the mint supply of given address\n * @param minter minter address\n */\n function minterSupply(address minter) external view returns (Supply memory);\n\n /**\n * @dev mint a0gi to this precompile, add corresponding amount to minter's mint supply.\n * If sender's final mint supply exceeds its mint cap, the transaction will revert.\n * Can only be called by WA0GI.\n * @param minter minter address\n * @param amount amount to mint\n */\n function mint(address minter, uint256 amount) external;\n\n /**\n * @dev burn given amount of a0gi on behalf of minter, reduce corresponding amount from sender's mint supply.\n * Can only be called by WA0GI.\n * @param minter minter address\n * @param amount amount to burn\n */\n function burn(address minter, uint256 amount) external;\n}\n"}},"settings":{"evmVersion":"istanbul","optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/IDASigners.sol":{"ast":{"absolutePath":"contracts/IDASigners.sol","exportedSymbols":{"BN254":[16],"IDASigners":[156]},"id":157,"license":"LGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"BN254","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":16,"linearizedBaseContracts":[16],"name":"BN254","nameLocation":"76:5:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BN254.G1Point","id":6,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"X","nameLocation":"118:1:0","nodeType":"VariableDeclaration","scope":6,"src":"113:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"113:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"Y","nameLocation":"134:1:0","nodeType":"VariableDeclaration","scope":6,"src":"129:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"129:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"G1Point","nameLocation":"95:7:0","nodeType":"StructDefinition","scope":16,"src":"88:54:0","visibility":"public"},{"canonicalName":"BN254.G2Point","id":15,"members":[{"constant":false,"id":10,"mutability":"mutable","name":"X","nameLocation":"235:1:0","nodeType":"VariableDeclaration","scope":15,"src":"227:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":7,"name":"uint","nodeType":"ElementaryTypeName","src":"227:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9,"length":{"hexValue":"32","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"227:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"Y","nameLocation":"254:1:0","nodeType":"VariableDeclaration","scope":15,"src":"246:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":11,"name":"uint","nodeType":"ElementaryTypeName","src":"246:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13,"length":{"hexValue":"32","id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"246:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"}],"name":"G2Point","nameLocation":"209:7:0","nodeType":"StructDefinition","scope":16,"src":"202:60:0","visibility":"public"}],"scope":157,"src":"68:196:0","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IDASigners","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":156,"linearizedBaseContracts":[156],"name":"IDASigners","nameLocation":"276:10:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IDASigners.SignerDetail","id":27,"members":[{"constant":false,"id":18,"mutability":"mutable","name":"signer","nameLocation":"354:6:0","nodeType":"VariableDeclaration","scope":27,"src":"346:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"socket","nameLocation":"377:6:0","nodeType":"VariableDeclaration","scope":27,"src":"370:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":19,"name":"string","nodeType":"ElementaryTypeName","src":"370:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"pkG1","nameLocation":"407:4:0","nodeType":"VariableDeclaration","scope":27,"src":"393:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":22,"nodeType":"UserDefinedTypeName","pathNode":{"id":21,"name":"BN254.G1Point","nameLocations":["393:5:0","399:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"393:13:0"},"referencedDeclaration":6,"src":"393:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":26,"mutability":"mutable","name":"pkG2","nameLocation":"435:4:0","nodeType":"VariableDeclaration","scope":27,"src":"421:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"},"typeName":{"id":25,"nodeType":"UserDefinedTypeName","pathNode":{"id":24,"name":"BN254.G2Point","nameLocations":["421:5:0","427:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":15,"src":"421:13:0"},"referencedDeclaration":15,"src":"421:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"}},"visibility":"internal"}],"name":"SignerDetail","nameLocation":"323:12:0","nodeType":"StructDefinition","scope":156,"src":"316:130:0","visibility":"public"},{"canonicalName":"IDASigners.Params","id":38,"members":[{"constant":false,"id":29,"mutability":"mutable","name":"tokensPerVote","nameLocation":"481:13:0","nodeType":"VariableDeclaration","scope":38,"src":"476:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"476:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"maxVotesPerSigner","nameLocation":"509:17:0","nodeType":"VariableDeclaration","scope":38,"src":"504:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30,"name":"uint","nodeType":"ElementaryTypeName","src":"504:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"maxQuorums","nameLocation":"541:10:0","nodeType":"VariableDeclaration","scope":38,"src":"536:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32,"name":"uint","nodeType":"ElementaryTypeName","src":"536:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"epochBlocks","nameLocation":"566:11:0","nodeType":"VariableDeclaration","scope":38,"src":"561:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34,"name":"uint","nodeType":"ElementaryTypeName","src":"561:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37,"mutability":"mutable","name":"encodedSlices","nameLocation":"592:13:0","nodeType":"VariableDeclaration","scope":38,"src":"587:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36,"name":"uint","nodeType":"ElementaryTypeName","src":"587:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Params","nameLocation":"459:6:0","nodeType":"StructDefinition","scope":156,"src":"452:160:0","visibility":"public"},{"anonymous":false,"eventSelector":"679917c2006df1daaa987a56bf1d66e99764d5ad317892d9e83a6eb4e3f051e7","id":48,"name":"NewSigner","nameLocation":"646:9:0","nodeType":"EventDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"681:6:0","nodeType":"VariableDeclaration","scope":48,"src":"665:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39,"name":"address","nodeType":"ElementaryTypeName","src":"665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43,"indexed":false,"mutability":"mutable","name":"pkG1","nameLocation":"711:4:0","nodeType":"VariableDeclaration","scope":48,"src":"697:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":42,"nodeType":"UserDefinedTypeName","pathNode":{"id":41,"name":"BN254.G1Point","nameLocations":["697:5:0","703:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"697:13:0"},"referencedDeclaration":6,"src":"697:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":46,"indexed":false,"mutability":"mutable","name":"pkG2","nameLocation":"739:4:0","nodeType":"VariableDeclaration","scope":48,"src":"725:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct BN254.G2Point"},"typeName":{"id":45,"nodeType":"UserDefinedTypeName","pathNode":{"id":44,"name":"BN254.G2Point","nameLocations":["725:5:0","731:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":15,"src":"725:13:0"},"referencedDeclaration":15,"src":"725:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct BN254.G2Point"}},"visibility":"internal"}],"src":"655:94:0"},"src":"640:110:0"},{"anonymous":false,"eventSelector":"09617a966176a40f8f1410768b118506db0096484acd5811064fcc12038798de","id":54,"name":"SocketUpdated","nameLocation":"761:13:0","nodeType":"EventDefinition","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"791:6:0","nodeType":"VariableDeclaration","scope":54,"src":"775:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"775:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"indexed":false,"mutability":"mutable","name":"socket","nameLocation":"806:6:0","nodeType":"VariableDeclaration","scope":54,"src":"799:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51,"name":"string","nodeType":"ElementaryTypeName","src":"799:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"774:39:0"},"src":"755:59:0"},{"functionSelector":"cff0ab96","id":60,"implemented":false,"kind":"function","modifiers":[],"name":"params","nameLocation":"854:6:0","nodeType":"FunctionDefinition","parameters":{"id":55,"nodeType":"ParameterList","parameters":[],"src":"860:2:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60,"src":"886:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$38_memory_ptr","typeString":"struct IDASigners.Params"},"typeName":{"id":57,"nodeType":"UserDefinedTypeName","pathNode":{"id":56,"name":"Params","nameLocations":["886:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":38,"src":"886:6:0"},"referencedDeclaration":38,"src":"886:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$38_storage_ptr","typeString":"struct IDASigners.Params"}},"visibility":"internal"}],"src":"885:15:0"},"scope":156,"src":"845:56:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f4145a83","id":65,"implemented":false,"kind":"function","modifiers":[],"name":"epochNumber","nameLocation":"916:11:0","nodeType":"FunctionDefinition","parameters":{"id":61,"nodeType":"ParameterList","parameters":[],"src":"927:2:0"},"returnParameters":{"id":64,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65,"src":"953:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:6:0"},"scope":156,"src":"907:52:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ecba503","id":72,"implemented":false,"kind":"function","modifiers":[],"name":"quorumCount","nameLocation":"974:11:0","nodeType":"FunctionDefinition","parameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67,"mutability":"mutable","name":"_epoch","nameLocation":"991:6:0","nodeType":"VariableDeclaration","scope":72,"src":"986:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"986:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"985:13:0"},"returnParameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72,"src":"1022:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69,"name":"uint","nodeType":"ElementaryTypeName","src":"1022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1021:6:0"},"scope":156,"src":"965:63:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7df73e27","id":79,"implemented":false,"kind":"function","modifiers":[],"name":"isSigner","nameLocation":"1043:8:0","nodeType":"FunctionDefinition","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"_account","nameLocation":"1060:8:0","nodeType":"VariableDeclaration","scope":79,"src":"1052:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1051:18:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79,"src":"1093:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76,"name":"bool","nodeType":"ElementaryTypeName","src":"1093:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1092:6:0"},"scope":156,"src":"1034:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d1f5e5f8","id":89,"implemented":false,"kind":"function","modifiers":[],"name":"getSigner","nameLocation":"1114:9:0","nodeType":"FunctionDefinition","parameters":{"id":83,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"_account","nameLocation":"1150:8:0","nodeType":"VariableDeclaration","scope":89,"src":"1133:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"1133:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81,"nodeType":"ArrayTypeName","src":"1133:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1123:41:0"},"returnParameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89,"src":"1188:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SignerDetail_$27_memory_ptr_$dyn_memory_ptr","typeString":"struct IDASigners.SignerDetail[]"},"typeName":{"baseType":{"id":85,"nodeType":"UserDefinedTypeName","pathNode":{"id":84,"name":"SignerDetail","nameLocations":["1188:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":27,"src":"1188:12:0"},"referencedDeclaration":27,"src":"1188:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_storage_ptr","typeString":"struct IDASigners.SignerDetail"}},"id":86,"nodeType":"ArrayTypeName","src":"1188:14:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SignerDetail_$27_storage_$dyn_storage_ptr","typeString":"struct IDASigners.SignerDetail[]"}},"visibility":"internal"}],"src":"1187:23:0"},"scope":156,"src":"1105:106:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6ab6f654","id":99,"implemented":false,"kind":"function","modifiers":[],"name":"getQuorum","nameLocation":"1226:9:0","nodeType":"FunctionDefinition","parameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91,"mutability":"mutable","name":"_epoch","nameLocation":"1250:6:0","nodeType":"VariableDeclaration","scope":99,"src":"1245:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90,"name":"uint","nodeType":"ElementaryTypeName","src":"1245:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"_quorumId","nameLocation":"1271:9:0","nodeType":"VariableDeclaration","scope":99,"src":"1266:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92,"name":"uint","nodeType":"ElementaryTypeName","src":"1266:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1235:51:0"},"returnParameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99,"src":"1310:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":95,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96,"nodeType":"ArrayTypeName","src":"1310:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1309:18:0"},"scope":156,"src":"1217:111:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fa6fcba6","id":110,"implemented":false,"kind":"function","modifiers":[],"name":"getQuorumRow","nameLocation":"1343:12:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_epoch","nameLocation":"1370:6:0","nodeType":"VariableDeclaration","scope":110,"src":"1365:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100,"name":"uint","nodeType":"ElementaryTypeName","src":"1365:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"_quorumId","nameLocation":"1391:9:0","nodeType":"VariableDeclaration","scope":110,"src":"1386:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102,"name":"uint","nodeType":"ElementaryTypeName","src":"1386:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"_rowIndex","nameLocation":"1417:9:0","nodeType":"VariableDeclaration","scope":110,"src":"1410:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":104,"name":"uint32","nodeType":"ElementaryTypeName","src":"1410:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1355:77:0"},"returnParameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":110,"src":"1456:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"1456:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1455:9:0"},"scope":156,"src":"1334:131:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7ca4dd5e","id":119,"implemented":false,"kind":"function","modifiers":[],"name":"registerSigner","nameLocation":"1480:14:0","nodeType":"FunctionDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113,"mutability":"mutable","name":"_signer","nameLocation":"1524:7:0","nodeType":"VariableDeclaration","scope":119,"src":"1504:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_memory_ptr","typeString":"struct IDASigners.SignerDetail"},"typeName":{"id":112,"nodeType":"UserDefinedTypeName","pathNode":{"id":111,"name":"SignerDetail","nameLocations":["1504:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":27,"src":"1504:12:0"},"referencedDeclaration":27,"src":"1504:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_SignerDetail_$27_storage_ptr","typeString":"struct IDASigners.SignerDetail"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"_signature","nameLocation":"1562:10:0","nodeType":"VariableDeclaration","scope":119,"src":"1541:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":115,"nodeType":"UserDefinedTypeName","pathNode":{"id":114,"name":"BN254.G1Point","nameLocations":["1541:5:0","1547:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1541:13:0"},"referencedDeclaration":6,"src":"1541:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"}],"src":"1494:84:0"},"returnParameters":{"id":118,"nodeType":"ParameterList","parameters":[],"src":"1587:0:0"},"scope":156,"src":"1471:117:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0cf4b767","id":124,"implemented":false,"kind":"function","modifiers":[],"name":"updateSocket","nameLocation":"1603:12:0","nodeType":"FunctionDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"_socket","nameLocation":"1630:7:0","nodeType":"VariableDeclaration","scope":124,"src":"1616:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":120,"name":"string","nodeType":"ElementaryTypeName","src":"1616:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1615:23:0"},"returnParameters":{"id":123,"nodeType":"ParameterList","parameters":[],"src":"1647:0:0"},"scope":156,"src":"1594:54:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6c9e560c","id":133,"implemented":false,"kind":"function","modifiers":[],"name":"registeredEpoch","nameLocation":"1663:15:0","nodeType":"FunctionDefinition","parameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"_account","nameLocation":"1696:8:0","nodeType":"VariableDeclaration","scope":133,"src":"1688:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"1688:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"_epoch","nameLocation":"1719:6:0","nodeType":"VariableDeclaration","scope":133,"src":"1714:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":127,"name":"uint","nodeType":"ElementaryTypeName","src":"1714:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1678:53:0"},"returnParameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":133,"src":"1755:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":130,"name":"bool","nodeType":"ElementaryTypeName","src":"1755:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1754:6:0"},"scope":156,"src":"1654:107:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"56a32372","id":139,"implemented":false,"kind":"function","modifiers":[],"name":"registerNextEpoch","nameLocation":"1776:17:0","nodeType":"FunctionDefinition","parameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"_signature","nameLocation":"1815:10:0","nodeType":"VariableDeclaration","scope":139,"src":"1794:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":135,"nodeType":"UserDefinedTypeName","pathNode":{"id":134,"name":"BN254.G1Point","nameLocations":["1794:5:0","1800:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1794:13:0"},"referencedDeclaration":6,"src":"1794:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"}],"src":"1793:33:0"},"returnParameters":{"id":138,"nodeType":"ParameterList","parameters":[],"src":"1835:0:0"},"scope":156,"src":"1767:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50b73739","id":155,"implemented":false,"kind":"function","modifiers":[],"name":"getAggPkG1","nameLocation":"1851:10:0","nodeType":"FunctionDefinition","parameters":{"id":146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"_epoch","nameLocation":"1876:6:0","nodeType":"VariableDeclaration","scope":155,"src":"1871:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":140,"name":"uint","nodeType":"ElementaryTypeName","src":"1871:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":143,"mutability":"mutable","name":"_quorumId","nameLocation":"1897:9:0","nodeType":"VariableDeclaration","scope":155,"src":"1892:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint","nodeType":"ElementaryTypeName","src":"1892:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":145,"mutability":"mutable","name":"_quorumBitmap","nameLocation":"1929:13:0","nodeType":"VariableDeclaration","scope":155,"src":"1916:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":144,"name":"bytes","nodeType":"ElementaryTypeName","src":"1916:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1861:87:0"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"aggPkG1","nameLocation":"2017:7:0","nodeType":"VariableDeclaration","scope":155,"src":"1996:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":148,"nodeType":"UserDefinedTypeName","pathNode":{"id":147,"name":"BN254.G1Point","nameLocations":["1996:5:0","2002:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1996:13:0"},"referencedDeclaration":6,"src":"1996:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"total","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":155,"src":"2026:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":150,"name":"uint","nodeType":"ElementaryTypeName","src":"2026:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":153,"mutability":"mutable","name":"hit","nameLocation":"2043:3:0","nodeType":"VariableDeclaration","scope":155,"src":"2038:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint","nodeType":"ElementaryTypeName","src":"2038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1995:52:0"},"scope":156,"src":"1842:206:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":157,"src":"266:1784:0","usedErrors":[],"usedEvents":[48,54]}],"src":"42:2009:0"},"id":0},"contracts/IWrappedA0GIBase.sol":{"ast":{"absolutePath":"contracts/IWrappedA0GIBase.sol","exportedSymbols":{"IWrappedA0GIBase":[198],"Supply":[165]},"id":199,"license":"LGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":158,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:1"},{"canonicalName":"Supply","id":165,"members":[{"constant":false,"id":160,"mutability":"mutable","name":"cap","nameLocation":"96:3:1","nodeType":"VariableDeclaration","scope":165,"src":"88:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":159,"name":"uint256","nodeType":"ElementaryTypeName","src":"88:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":162,"mutability":"mutable","name":"initialSupply","nameLocation":"113:13:1","nodeType":"VariableDeclaration","scope":165,"src":"105:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":161,"name":"uint256","nodeType":"ElementaryTypeName","src":"105:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":164,"mutability":"mutable","name":"supply","nameLocation":"140:6:1","nodeType":"VariableDeclaration","scope":165,"src":"132:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163,"name":"uint256","nodeType":"ElementaryTypeName","src":"132:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Supply","nameLocation":"75:6:1","nodeType":"StructDefinition","scope":199,"src":"68:81:1","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IWrappedA0GIBase","contractDependencies":[],"contractKind":"interface","documentation":{"id":166,"nodeType":"StructuredDocumentation","src":"151:127:1","text":" @title WrappedA0GIBase is a precompile for wrapped a0gi(wA0GI), it enables wA0GI mint/burn native 0g token directly."},"fullyImplemented":false,"id":198,"linearizedBaseContracts":[198],"name":"IWrappedA0GIBase","nameLocation":"289:16:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":167,"nodeType":"StructuredDocumentation","src":"558:46:1","text":" @dev get the wA0GI address."},"functionSelector":"a9283a7a","id":172,"implemented":false,"kind":"function","modifiers":[],"name":"getWA0GI","nameLocation":"618:8:1","nodeType":"FunctionDefinition","parameters":{"id":168,"nodeType":"ParameterList","parameters":[],"src":"626:2:1"},"returnParameters":{"id":171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":172,"src":"652:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":169,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"651:9:1"},"scope":198,"src":"609:52:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":173,"nodeType":"StructuredDocumentation","src":"1052:96:1","text":" @dev get the mint supply of given address\n @param minter minter address"},"functionSelector":"95609212","id":181,"implemented":false,"kind":"function","modifiers":[],"name":"minterSupply","nameLocation":"1162:12:1","nodeType":"FunctionDefinition","parameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175,"mutability":"mutable","name":"minter","nameLocation":"1183:6:1","nodeType":"VariableDeclaration","scope":181,"src":"1175:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":174,"name":"address","nodeType":"ElementaryTypeName","src":"1175:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1174:16:1"},"returnParameters":{"id":180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":181,"src":"1214:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Supply_$165_memory_ptr","typeString":"struct Supply"},"typeName":{"id":178,"nodeType":"UserDefinedTypeName","pathNode":{"id":177,"name":"Supply","nameLocations":["1214:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":165,"src":"1214:6:1"},"referencedDeclaration":165,"src":"1214:6:1","typeDescriptions":{"typeIdentifier":"t_struct$_Supply_$165_storage_ptr","typeString":"struct Supply"}},"visibility":"internal"}],"src":"1213:15:1"},"scope":198,"src":"1153:76:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"1235:299:1","text":" @dev mint a0gi to this precompile, add corresponding amount to minter's mint supply.\n If sender's final mint supply exceeds its mint cap, the transaction will revert.\n Can only be called by WA0GI.\n @param minter minter address\n @param amount amount to mint"},"functionSelector":"40c10f19","id":189,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1548:4:1","nodeType":"FunctionDefinition","parameters":{"id":187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":184,"mutability":"mutable","name":"minter","nameLocation":"1561:6:1","nodeType":"VariableDeclaration","scope":189,"src":"1553:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"1553:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"mutability":"mutable","name":"amount","nameLocation":"1577:6:1","nodeType":"VariableDeclaration","scope":189,"src":"1569:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1569:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1552:32:1"},"returnParameters":{"id":188,"nodeType":"ParameterList","parameters":[],"src":"1593:0:1"},"scope":198,"src":"1539:55:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"1600:233:1","text":" @dev burn given amount of a0gi on behalf of minter, reduce corresponding amount from sender's mint supply.\n Can only be called by WA0GI.\n @param minter minter address\n @param amount amount to burn"},"functionSelector":"9dc29fac","id":197,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1847:4:1","nodeType":"FunctionDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"mutability":"mutable","name":"minter","nameLocation":"1860:6:1","nodeType":"VariableDeclaration","scope":197,"src":"1852:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":191,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":194,"mutability":"mutable","name":"amount","nameLocation":"1876:6:1","nodeType":"VariableDeclaration","scope":197,"src":"1868:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1868:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1851:32:1"},"returnParameters":{"id":196,"nodeType":"ParameterList","parameters":[],"src":"1892:0:1"},"scope":198,"src":"1838:55:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":199,"src":"279:1616:1","usedErrors":[],"usedEvents":[]}],"src":"42:1854:1"},"id":1}},"contracts":{"contracts/IDASigners.sol":{"BN254":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bc5ce87162a146d69c64f0bea678aa6b635136c2b5b8de9f9f9621d903e8a3664736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL 0xC5 0xCE DUP8 AND 0x2A EQ PUSH14 0x69C64F0BEA678AA6B635136C2B5B DUP14 0xE9 0xF9 0xF9 PUSH3 0x1D903E DUP11 CALLDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"68:196:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;68:196:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bc5ce87162a146d69c64f0bea678aa6b635136c2b5b8de9f9f9621d903e8a3664736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL 0xC5 0xCE DUP8 AND 0x2A EQ PUSH14 0x69C64F0BEA678AA6B635136C2B5B DUP14 0xE9 0xF9 0xF9 PUSH3 0x1D903E DUP11 CALLDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"68:196:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IDASigners.sol\":\"BN254\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IDASigners.sol\":{\"keccak256\":\"0xcee17b82796cec7350837b097be51beb97b4b33b53b81c64206533e5027c2e36\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://15963ce1e8afb9c888be8ab6afdbee2e7e7f75e7af34644ad85965d3e97d7aaf\",\"dweb:/ipfs/QmUxw9EqN841nnMxTL5hBKSf8NNBPTxc3gzGXhyApUquDi\"]}},\"version\":1}"},"IDASigners":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"indexed":false,"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"indexed":false,"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"string","name":"socket","type":"string"}],"name":"SocketUpdated","type":"event"},{"inputs":[],"name":"epochNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"},{"internalType":"bytes","name":"_quorumBitmap","type":"bytes"}],"name":"getAggPkG1","outputs":[{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"aggPkG1","type":"tuple"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"hit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"}],"name":"getQuorum","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_quorumId","type":"uint256"},{"internalType":"uint32","name":"_rowIndex","type":"uint32"}],"name":"getQuorumRow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_account","type":"address[]"}],"name":"getSigner","outputs":[{"components":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"string","name":"socket","type":"string"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"internalType":"struct IDASigners.SignerDetail[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"tokensPerVote","type":"uint256"},{"internalType":"uint256","name":"maxVotesPerSigner","type":"uint256"},{"internalType":"uint256","name":"maxQuorums","type":"uint256"},{"internalType":"uint256","name":"epochBlocks","type":"uint256"},{"internalType":"uint256","name":"encodedSlices","type":"uint256"}],"internalType":"struct IDASigners.Params","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"quorumCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"_signature","type":"tuple"}],"name":"registerNextEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"string","name":"socket","type":"string"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"pkG1","type":"tuple"},{"components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"internalType":"struct BN254.G2Point","name":"pkG2","type":"tuple"}],"internalType":"struct IDASigners.SignerDetail","name":"_signer","type":"tuple"},{"components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"internalType":"struct BN254.G1Point","name":"_signature","type":"tuple"}],"name":"registerSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"registeredEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_socket","type":"string"}],"name":"updateSocket","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"epochNumber()":"f4145a83","getAggPkG1(uint256,uint256,bytes)":"50b73739","getQuorum(uint256,uint256)":"6ab6f654","getQuorumRow(uint256,uint256,uint32)":"fa6fcba6","getSigner(address[])":"d1f5e5f8","isSigner(address)":"7df73e27","params()":"cff0ab96","quorumCount(uint256)":"5ecba503","registerNextEpoch((uint256,uint256))":"56a32372","registerSigner((address,string,(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))":"7ca4dd5e","registeredEpoch(address,uint256)":"6c9e560c","updateSocket(string)":"0cf4b767"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"indexed\":false,\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"name\":\"NewSigner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"SocketUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"epochNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_quorumBitmap\",\"type\":\"bytes\"}],\"name\":\"getAggPkG1\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"aggPkG1\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"}],\"name\":\"getQuorum\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_quorumId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_rowIndex\",\"type\":\"uint32\"}],\"name\":\"getQuorumRow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_account\",\"type\":\"address[]\"}],\"name\":\"getSigner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IDASigners.SignerDetail[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isSigner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokensPerVote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotesPerSigner\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxQuorums\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epochBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"encodedSlices\",\"type\":\"uint256\"}],\"internalType\":\"struct IDASigners.Params\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"registerNextEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pkG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pkG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IDASigners.SignerDetail\",\"name\":\"_signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"registerSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"registeredEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_socket\",\"type\":\"string\"}],\"name\":\"updateSocket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IDASigners.sol\":\"IDASigners\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IDASigners.sol\":{\"keccak256\":\"0xcee17b82796cec7350837b097be51beb97b4b33b53b81c64206533e5027c2e36\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://15963ce1e8afb9c888be8ab6afdbee2e7e7f75e7af34644ad85965d3e97d7aaf\",\"dweb:/ipfs/QmUxw9EqN841nnMxTL5hBKSf8NNBPTxc3gzGXhyApUquDi\"]}},\"version\":1}"}},"contracts/IWrappedA0GIBase.sol":{"IWrappedA0GIBase":{"abi":[{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getWA0GI","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"minterSupply","outputs":[{"components":[{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"internalType":"struct Supply","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(address,uint256)":"9dc29fac","getWA0GI()":"a9283a7a","mint(address,uint256)":"40c10f19","minterSupply(address)":"95609212"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWA0GI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterSupply\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"internalType\":\"struct Supply\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"burn(address,uint256)\":{\"details\":\"burn given amount of a0gi on behalf of minter, reduce corresponding amount from sender's mint supply. Can only be called by WA0GI.\",\"params\":{\"amount\":\"amount to burn\",\"minter\":\"minter address\"}},\"getWA0GI()\":{\"details\":\"get the wA0GI address.\"},\"mint(address,uint256)\":{\"details\":\"mint a0gi to this precompile, add corresponding amount to minter's mint supply. If sender's final mint supply exceeds its mint cap, the transaction will revert. Can only be called by WA0GI.\",\"params\":{\"amount\":\"amount to mint\",\"minter\":\"minter address\"}},\"minterSupply(address)\":{\"details\":\"get the mint supply of given address\",\"params\":{\"minter\":\"minter address\"}}},\"title\":\"WrappedA0GIBase is a precompile for wrapped a0gi(wA0GI), it enables wA0GI mint/burn native 0g token directly.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IWrappedA0GIBase.sol\":\"IWrappedA0GIBase\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IWrappedA0GIBase.sol\":{\"keccak256\":\"0xc3d7651403ceec70fc2682ec6760f938a0a712c3a3c541fb0ab4166f9cb99760\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7c3d3b6e2b1a928fac7761c30ce495f4f6d379b91eca90826317eda1eb62b544\",\"dweb:/ipfs/QmbNAYMDNv4UBNCZUTk6sDbvVoHn4hwabDAvQxet4g8C1b\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.dbg.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.dbg.json deleted file mode 100644 index 8bad1cfed3..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/377589efa765dec208356377872d3755.json" -} diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.json deleted file mode 100644 index fe3a8cc615..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/BN254.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BN254", - "sourceName": "contracts/IDASigners.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abc43d74fec9de74f3b7a60ee2e0337c23369163d8fb7a1e1cb0037a16d8abfb64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abc43d74fec9de74f3b7a60ee2e0337c23369163d8fb7a1e1cb0037a16d8abfb64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.dbg.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.dbg.json deleted file mode 100644 index 8bad1cfed3..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/377589efa765dec208356377872d3755.json" -} diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.json deleted file mode 100644 index a9a679b4c2..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IDASigners.sol/IDASigners.json +++ /dev/null @@ -1,484 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IDASigners", - "sourceName": "contracts/IDASigners.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct BN254.G1Point", - "name": "pkG1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "indexed": false, - "internalType": "struct BN254.G2Point", - "name": "pkG2", - "type": "tuple" - } - ], - "name": "NewSigner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "socket", - "type": "string" - } - ], - "name": "SocketUpdated", - "type": "event" - }, - { - "inputs": [], - "name": "epochNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_quorumId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_quorumBitmap", - "type": "bytes" - } - ], - "name": "getAggPkG1", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "aggPkG1", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "total", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "hit", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_quorumId", - "type": "uint256" - } - ], - "name": "getQuorum", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_quorumId", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "_rowIndex", - "type": "uint32" - } - ], - "name": "getQuorumRow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_account", - "type": "address[]" - } - ], - "name": "getSigner", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "string", - "name": "socket", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pkG1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "internalType": "struct BN254.G2Point", - "name": "pkG2", - "type": "tuple" - } - ], - "internalType": "struct IDASigners.SignerDetail[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "makeEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "params", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensPerVote", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxVotesPerSigner", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxQuorums", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "epochBlocks", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "encodedSlices", - "type": "uint256" - } - ], - "internalType": "struct IDASigners.Params", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - } - ], - "name": "quorumCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "_signature", - "type": "tuple" - } - ], - "name": "registerNextEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "string", - "name": "socket", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pkG1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "internalType": "struct BN254.G2Point", - "name": "pkG2", - "type": "tuple" - } - ], - "internalType": "struct IDASigners.SignerDetail", - "name": "_signer", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "_signature", - "type": "tuple" - } - ], - "name": "registerSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - } - ], - "name": "registeredEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_socket", - "type": "string" - } - ], - "name": "updateSocket", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.dbg.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.dbg.json deleted file mode 100644 index a79d40a1dd..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/c79ff14473359160d0c7a65892d5cb52.json" -} diff --git a/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.json b/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.json deleted file mode 100644 index ff537b54ae..0000000000 --- a/core/vm/precompiles/interfaces/build/artifacts/contracts/IWrappedA0GIBase.sol/IWrappedA0GIBase.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IWrappedA0GIBase", - "sourceName": "contracts/IWrappedA0GIBase.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "minter", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getWA0GI", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "minter", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "minter", - "type": "address" - } - ], - "name": "minterSupply", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "cap", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "initialSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "supply", - "type": "uint256" - } - ], - "internalType": "struct Supply", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/core/vm/precompiles/interfaces/build/cache/solidity-files-cache.json b/core/vm/precompiles/interfaces/build/cache/solidity-files-cache.json deleted file mode 100644 index 23fa861825..0000000000 --- a/core/vm/precompiles/interfaces/build/cache/solidity-files-cache.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/Users/wangfan/Project/0g-geth/core/vm/precompiles/interfaces/contracts/IDASigners.sol": { - "lastModificationDate": 1743021984706, - "contentHash": "dbe903452c6de71caa950fdb306027b3", - "sourceName": "contracts/IDASigners.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "evmVersion": "istanbul", - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "BN254", - "IDASigners" - ] - }, - "/Users/wangfan/Project/0g-geth/core/vm/precompiles/interfaces/contracts/IWrappedA0GIBase.sol": { - "lastModificationDate": 1743006728499, - "contentHash": "1d44f536ff2a527d2afe8a4ef85adc7b", - "sourceName": "contracts/IWrappedA0GIBase.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "evmVersion": "istanbul", - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IWrappedA0GIBase" - ] - } - } -} diff --git a/core/vm/precompiles/interfaces/contracts/IWrappedA0GIBase.sol b/core/vm/precompiles/interfaces/contracts/IWrappedA0GIBase.sol index 614208a801..b0dbb709df 100644 --- a/core/vm/precompiles/interfaces/contracts/IWrappedA0GIBase.sol +++ b/core/vm/precompiles/interfaces/contracts/IWrappedA0GIBase.sol @@ -54,4 +54,17 @@ interface IWrappedA0GIBase { * @param amount amount to burn */ function burn(address minter, uint256 amount) external; + + /** + * @dev Modify the mint and burn cap of given account. + * Can only be called by multi-sig admin. + * @param minter minter address + * @param cap new mint cap + * @param initialSupply new initial supply / burn cap + */ + function setMinterCap( + address minter, + uint256 cap, + uint256 initialSupply + ) external; } diff --git a/core/vm/precompiles/wrapped_a0gi_base/contract.go b/core/vm/precompiles/wrapped_a0gi_base/contract.go index 176842bd3d..54763e8f5f 100644 --- a/core/vm/precompiles/wrapped_a0gi_base/contract.go +++ b/core/vm/precompiles/wrapped_a0gi_base/contract.go @@ -37,7 +37,7 @@ type Supply struct { // Wrappeda0gibaseMetaData contains all meta data concerning the Wrappeda0gibase contract. var Wrappeda0gibaseMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWA0GI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterSupply\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"internalType\":\"structSupply\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWA0GI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterSupply\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"internalType\":\"structSupply\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"name\":\"setMinterCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // Wrappeda0gibaseABI is the input ABI used to generate the binding from. @@ -289,3 +289,24 @@ func (_Wrappeda0gibase *Wrappeda0gibaseSession) Mint(minter common.Address, amou func (_Wrappeda0gibase *Wrappeda0gibaseTransactorSession) Mint(minter common.Address, amount *big.Int) (*types.Transaction, error) { return _Wrappeda0gibase.Contract.Mint(&_Wrappeda0gibase.TransactOpts, minter, amount) } + +// SetMinterCap is a paid mutator transaction binding the contract method 0xdddba6c8. +// +// Solidity: function setMinterCap(address minter, uint256 cap, uint256 initialSupply) returns() +func (_Wrappeda0gibase *Wrappeda0gibaseTransactor) SetMinterCap(opts *bind.TransactOpts, minter common.Address, cap *big.Int, initialSupply *big.Int) (*types.Transaction, error) { + return _Wrappeda0gibase.contract.Transact(opts, "setMinterCap", minter, cap, initialSupply) +} + +// SetMinterCap is a paid mutator transaction binding the contract method 0xdddba6c8. +// +// Solidity: function setMinterCap(address minter, uint256 cap, uint256 initialSupply) returns() +func (_Wrappeda0gibase *Wrappeda0gibaseSession) SetMinterCap(minter common.Address, cap *big.Int, initialSupply *big.Int) (*types.Transaction, error) { + return _Wrappeda0gibase.Contract.SetMinterCap(&_Wrappeda0gibase.TransactOpts, minter, cap, initialSupply) +} + +// SetMinterCap is a paid mutator transaction binding the contract method 0xdddba6c8. +// +// Solidity: function setMinterCap(address minter, uint256 cap, uint256 initialSupply) returns() +func (_Wrappeda0gibase *Wrappeda0gibaseTransactorSession) SetMinterCap(minter common.Address, cap *big.Int, initialSupply *big.Int) (*types.Transaction, error) { + return _Wrappeda0gibase.Contract.SetMinterCap(&_Wrappeda0gibase.TransactOpts, minter, cap, initialSupply) +} diff --git a/core/vm/precompiles/wrapped_a0gi_base/errors.go b/core/vm/precompiles/wrapped_a0gi_base/errors.go index 833d92e157..2b1e0e37e4 100644 --- a/core/vm/precompiles/wrapped_a0gi_base/errors.go +++ b/core/vm/precompiles/wrapped_a0gi_base/errors.go @@ -4,6 +4,7 @@ import "errors" var ( ErrSenderNotWA0GI = errors.New("sender is not WA0GI") + ErrSenderNotAgency = errors.New("sender is not agency") ErrInsufficientMintCap = errors.New("insufficient mint cap") ErrInsufficientMintSupply = errors.New("insufficient mint supply") ) diff --git a/core/vm/wrapped_a0gi_base.go b/core/vm/wrapped_a0gi_base.go index ed4f124617..3af1a44026 100644 --- a/core/vm/wrapped_a0gi_base.go +++ b/core/vm/wrapped_a0gi_base.go @@ -16,8 +16,9 @@ const ( WrappedA0GIBaseRequiredGasMax uint64 = 1000_000_000 // txs - WrappedA0GIBaseFunctionMint = "mint" - WrappedA0GIBaseFunctionBurn = "burn" + WrappedA0GIBaseFunctionMint = "mint" + WrappedA0GIBaseFunctionBurn = "burn" + WrappedA0GIBaseFunctionSetMinterCap = "setMinterCap" // queries WrappedA0GIBaseFunctionGetWA0GI = "getWA0GI" WrappedA0GIBaseFunctionMinterSupply = "minterSupply" @@ -26,6 +27,7 @@ const ( var WrappedA0GIBaseRequiredGasBasic = map[string]uint64{ WrappedA0GIBaseFunctionMint: 100_000, WrappedA0GIBaseFunctionBurn: 100_000, + WrappedA0GIBaseFunctionSetMinterCap: 100_000, WrappedA0GIBaseFunctionGetWA0GI: 5_000, WrappedA0GIBaseFunctionMinterSupply: 10_000, } @@ -97,6 +99,8 @@ func (w *WrappedA0giBasePrecompile) Run(evm *EVM, contract *Contract, readonly b bz, err = w.Mint(evm, contract, method, args) case WrappedA0GIBaseFunctionBurn: bz, err = w.Burn(evm, contract, method, args) + case WrappedA0GIBaseFunctionSetMinterCap: + bz, err = w.SetMinterCap(evm, contract, method, args) } if err != nil { @@ -235,3 +239,53 @@ func (w *WrappedA0giBasePrecompile) Burn( } return method.Outputs.Pack() } + +func (w *WrappedA0giBasePrecompile) getAgency() common.Address { + // This is a Wrapped A0GI Agency contract deployed by a raw transaction: + // raw tx params: + // from: + // nonce: 0 + // gasPrice: 100 Gwei + // gasLimit: 1000000 + // The sender is an ephemeral account, nobody holds its private key and this is the only transaction it signed. + // This transaction is a legacy transaction without chain ID so it can be deployed at any EVM chain which supports pre-EIP155 transactions. + // raw tx: + return common.HexToAddress("0x0000000000000000000000000000000000000000") +} + +func (w *WrappedA0giBasePrecompile) SetMinterCap( + evm *EVM, + contract *Contract, + method *abi.Method, + args []interface{}, +) ([]byte, error) { + if len(args) != 3 { + return nil, ErrExecutionReverted + } + minter := args[0].(common.Address) + cap := args[1].(*big.Int) + initialSupply := args[2].(*big.Int) + // validation + agency := w.getAgency() + if contract.caller != agency { + return nil, wrappeda0gibase.ErrSenderNotWA0GI + } + // execute + supply, err := w.getMinterSupply(evm, minter) + if err != nil { + return nil, err + } + difference := new(big.Int).Sub(initialSupply, supply.InitialSupply) + supply.Supply.Add(supply.Supply, difference) + if supply.Supply.Cmp(big.NewInt(0)) < 0 { + supply.Supply = big.NewInt(0) + } + supply.Cap = cap + supply.InitialSupply = initialSupply + + // update minter supply + if err = w.setMinterSupply(evm, minter, supply); err != nil { + return nil, err + } + return method.Outputs.Pack() +}