0 txs
0 calls
constructor
No constructor.
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getPoRAddressListLength
viewfunction getPoRAddressListLength() view returns (uint256)
getPoRAddressSignatureMessages
viewfunction getPoRAddressSignatureMessages() view returns (tuple[])
getPoRAddressSignatureMessages
viewfunction getPoRAddressSignatureMessages(uint256 _start, uint256 _end) view returns (string[], bytes32[], string[], bytes[])
getPoRSignatureMessages
viewfunction getPoRSignatureMessages(string[] _addresses) view returns (bytes32[], string[], bytes[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRootPubkey
viewfunction getRootPubkey(bytes32 _id) view returns (bytes)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addAddresses
nonpayablefunction addAddresses(string[] _addresses, bytes32[] _rootPkIds, string[] _messagesOrDerivationData, bytes[] _signatures)
addRootPubkey
nonpayablefunction addRootPubkey(bytes _pubkey)
deleteAddresses
nonpayablefunction deleteAddresses(string[] _addresses)
deleteRootPubkey
nonpayablefunction deleteRootPubkey(bytes _pubkey)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _owner)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
updateMessageSignature
nonpayablefunction updateMessageSignature(string[] _addresses, string[] _messages, bytes[] _signatures)
events
Initialized
event Initialized(uint64 version)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressAlreadyExists
error AddressAlreadyExists(string addressStr)
AddressDoesNotExist
error AddressDoesNotExist(string addressStr)
ArrayLengthMismatch
error ArrayLengthMismatch()
InvalidInitialization
error InvalidInitialization()
InvalidMessageSignature
error InvalidMessageSignature(string addressStr, string messageOrPath, bytes signature)
InvalidRootPubkey
error InvalidRootPubkey()
InvalidRootPubkeyId
error InvalidRootPubkeyId(bytes32 id)
NotInitializing
error NotInitializing()
RootPubkeyAlreadyExists
error RootPubkeyAlreadyExists(bytes pubkey)
RootPubkeyCannotBeDeleted
error RootPubkeyCannotBeDeleted()
RootPubkeyDoesNotExist
error RootPubkeyDoesNotExist(bytes pubkey)
creation bytecode
0x608060405234801561001057600080fd5b506127d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638e684135116100ad578063bba7dcb211610071578063bba7dcb21461028c578063c4d66de81461029f578063d547741f146102b2578063de2e67ef146102c5578063f5b541a6146102d857600080fd5b80638e6841351461021c57806391d148541461022f578063a217fddf14610242578063aa98b7151461024a578063b94944491461026c57600080fd5b80632f2ff15d116100f45780632f2ff15d1461019957806336568abe146101ac578063391e9474146101bf5780634f20b888146101e257806371f22c351461020957600080fd5b806301ffc9a7146101265780631fb3d2461461014e578063248a9ca31461016357806328ccfd0014610184575b600080fd5b610139610134366004611d21565b6102ff565b60405190151581526020015b60405180910390f35b610156610336565b6040516101459190611d98565b610176610171366004611e46565b610567565b604051908152602001610145565b610197610192366004611e5f565b610589565b005b6101976101a7366004611eec565b61065e565b6101976101ba366004611eec565b610680565b6101d26101cd366004611f18565b6106b8565b6040516101459493929190611fd0565b7f2820bf7f0bcf92e901021c9470a614652331fbef5e77eebe7a3799436b59890154610176565b610197610217366004611e5f565b610ba9565b61019761022a366004612073565b610cb7565b61013961023d366004611eec565b610f52565b610176600081565b61025d61025836600461210c565b610f8a565b6040516101459392919061214d565b61027f61027a366004611e46565b6112a4565b6040516101459190612190565b61019761029a3660046121a3565b611353565b6101976102ad366004612266565b611742565b6101976102c0366004611eec565b61185b565b6101976102d336600461210c565b611877565b6101767f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b60006001600160e01b03198216637965db0b60e01b148061033057506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060006000805160206127808339815191526001810180546040805160208084028201810190925282815293945060009084015b8282101561055d578382906000526020600020906004020160405180608001604052908160008201805461039e90612281565b80601f01602080910402602001604051908101604052809291908181526020018280546103ca90612281565b80156104175780601f106103ec57610100808354040283529160200191610417565b820191906000526020600020905b8154815290600101906020018083116103fa57829003601f168201915b505050505081526020016001820154815260200160028201805461043a90612281565b80601f016020809104026020016040519081016040528092919081815260200182805461046690612281565b80156104b35780601f10610488576101008083540402835291602001916104b3565b820191906000526020600020905b81548152906001019060200180831161049657829003601f168201915b505050505081526020016003820180546104cc90612281565b80601f01602080910402602001604051908101604052809291908181526020018280546104f890612281565b80156105455780601f1061051a57610100808354040283529160200191610545565b820191906000526020600020905b81548152906001019060200180831161052857829003601f168201915b5050505050815250508152602001906001019061036b565b5050505091505090565b6000908152600080516020612760833981519152602052604090206001015490565b600061059481611b15565b604051600080516020612780833981519152906000906105b790869086906122bb565b6040805191829003909120600081815260208590529190912080549192509081906105e190612281565b9050600003610610578585604051631b2a8f2f60e31b81526004016106079291906122f4565b60405180910390fd5b600181015415610633576040516306c2ffb760e31b815260040160405180910390fd5b60008281526020849052604081209061064c8282611cd3565b60018201600090555050505050505050565b61066782610567565b61067081611b15565b61067a8383611b22565b50505050565b6001600160a01b03811633146106a95760405163334bd91960e11b815260040160405180910390fd5b6106b38282611bc7565b505050565b7f2820bf7f0bcf92e901021c9470a614652331fbef5e77eebe7a3799436b5989015460609081908190819060008051602061278083398151915290861061070c576001818101546107099190612326565b95505b858711156107ae57604080516000808252602082019092529061073f565b606081526020019060019003908161072a5790505b5060408051600080825260208201818152828401909352909190610773565b606081526020019060019003908161075e5790505b50604080516000808252602082019092529061079f565b606081526020019060019003908161078a5790505b50945094509450945050610ba0565b60006107ba8888612326565b6107c590600161234f565b6001600160401b038111156107dc576107dc612339565b60405190808252806020026020018201604052801561080f57816020015b60608152602001906001900390816107fa5790505b509050600061081e8989612326565b61082990600161234f565b6001600160401b0381111561084057610840612339565b604051908082528060200260200182016040528015610869578160200160208202803683370190505b50905060006108788a8a612326565b61088390600161234f565b6001600160401b0381111561089a5761089a612339565b6040519080825280602002602001820160405280156108cd57816020015b60608152602001906001900390816108b85790505b50905060006108dc8b8b612326565b6108e790600161234f565b6001600160401b038111156108fe576108fe612339565b60405190808252806020026020018201604052801561093157816020015b606081526020019060019003908161091c5790505b50905060005b8a8c11610b93576000866001018d8154811061095557610955612362565b9060005260206000209060040201905080600001805461097490612281565b80601f01602080910402602001604051908101604052809291908181526020018280546109a090612281565b80156109ed5780601f106109c2576101008083540402835291602001916109ed565b820191906000526020600020905b8154815290600101906020018083116109d057829003601f168201915b5050505050868381518110610a0457610a04612362565b60200260200101819052508060010154858381518110610a2657610a26612362565b602002602001018181525050806002018054610a4190612281565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d90612281565b8015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b5050505050848381518110610ad157610ad1612362565b6020026020010181905250806003018054610aeb90612281565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1790612281565b8015610b645780601f10610b3957610100808354040283529160200191610b64565b820191906000526020600020905b815481529060010190602001808311610b4757829003601f168201915b5050505050838381518110610b7b57610b7b612362565b60209081029190910101525060019b8c019b01610937565b5092975090955093509150505b92959194509250565b6000610bb481611b15565b60418214610bd557604051630caa7dd360e41b815260040160405180910390fd5b60405160008051602061278083398151915290600090610bf890869086906122bb565b60408051918290039091206000818152602085905291909120805491925090610c2090612281565b159050610c4457848460405163d609e01b60e01b81526004016106079291906122f4565b6040805160606020601f8801819004028201810183529181018681529091829190889088908190850183828082843760009201829052509385525050506020918201819052838152908490526040902081518190610ca290826123d5565b50602082015181600101559050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610ce181611b15565b6000805160206127808339815191528487141580610cff5750868314155b15610d1d5760405163512509d360e11b815260040160405180910390fd5b60005b87811015610f47576000826002018a8a84818110610d4057610d40612362565b9050602002810190610d52919061248e565b604051610d609291906122bb565b908152602001604051809103902054905080600003610db857898983818110610d8b57610d8b612362565b9050602002810190610d9d919061248e565b604051639d9aae3960e01b81526004016106079291906122f4565b878783818110610dca57610dca612362565b9050602002810190610ddc919061248e565b15905080610e0d5750858583818110610df757610df7612362565b9050602002810190610e09919061248e565b1590505b15610e9d57898983818110610e2457610e24612362565b9050602002810190610e36919061248e565b898985818110610e4857610e48612362565b9050602002810190610e5a919061248e565b898987818110610e6c57610e6c612362565b9050602002810190610e7e919061248e565b604051631f3e04ff60e21b8152600401610607969594939291906124d4565b600083600101600183610eb09190612326565b81548110610ec057610ec0612362565b90600052602060002090600402019050888884818110610ee257610ee2612362565b9050602002810190610ef4919061248e565b6002830191610f0491908361251d565b50868684818110610f1757610f17612362565b9050602002810190610f29919061248e565b6003830191610f3991908361251d565b508260010192505050610d20565b505050505050505050565b6000918252600080516020612760833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606080806000805160206127808339815191526000856001600160401b03811115610fb757610fb7612339565b604051908082528060200260200182016040528015610fe0578160200160208202803683370190505b5090506000866001600160401b03811115610ffd57610ffd612339565b60405190808252806020026020018201604052801561103057816020015b606081526020019060019003908161101b5790505b5090506000876001600160401b0381111561104d5761104d612339565b60405190808252806020026020018201604052801561108057816020015b606081526020019060019003908161106b5790505b50905060005b88811015611294576000856002018b8b848181106110a6576110a6612362565b90506020028101906110b8919061248e565b6040516110c69291906122bb565b90815260200160405180910390205490508060001461128b576000866001016001836110f29190612326565b8154811061110257611102612362565b90600052602060002090600402019050806001015486848151811061112957611129612362565b60200260200101818152505080600201805461114490612281565b80601f016020809104026020016040519081016040528092919081815260200182805461117090612281565b80156111bd5780601f10611192576101008083540402835291602001916111bd565b820191906000526020600020905b8154815290600101906020018083116111a057829003601f168201915b50505050508584815181106111d4576111d4612362565b60200260200101819052508060030180546111ee90612281565b80601f016020809104026020016040519081016040528092919081815260200182805461121a90612281565b80156112675780601f1061123c57610100808354040283529160200191611267565b820191906000526020600020905b81548152906001019060200180831161124a57829003601f168201915b505050505084848151811061127e5761127e612362565b6020026020010181905250505b50600101611086565b5091955093509150509250925092565b6000818152600080516020612780833981519152602052604090208054606091906112ce90612281565b80601f01602080910402602001604051908101604052809291908181526020018280546112fa90612281565b80156113475780601f1061131c57610100808354040283529160200191611347565b820191906000526020600020905b81548152906001019060200180831161132a57829003601f168201915b50505050509050919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961137d81611b15565b878614158061138c5750878414155b806113975750878214155b156113b55760405163512509d360e11b815260040160405180910390fd5b60008051602061278083398151915260005b8981101561173557816002018b8b838181106113e5576113e5612362565b90506020028101906113f7919061248e565b6040516114059291906122bb565b90815260200160405180910390205460001461145a578a8a8281811061142d5761142d612362565b905060200281019061143f919061248e565b60405163df198a6960e01b81526004016106079291906122f4565b6000808a8a8481811061146f5761146f612362565b90506020020135141590508080156114be57508260008b8b8581811061149757611497612362565b90506020020135815260200190815260200160002060000180546114ba90612281565b1590505b156114f8578989838181106114d5576114d5612362565b9050602002013560405163efb9ea7d60e01b815260040161060791815260200190565b8260010160405180608001604052808e8e8681811061151957611519612362565b905060200281019061152b919061248e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020018c8c8681811061157757611577612362565b9050602002013581526020018a8a8681811061159557611595612362565b90506020028101906115a7919061248e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020018888868181106115f3576115f3612362565b9050602002810190611605919061248e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083546001810185559381526020902082519293600402019182915061166090826123d5565b50602082015160018201556040820151600282019061167f90826123d5565b506060820151600382019061169490826123d5565b5050506001830154600284018d8d858181106116b2576116b2612362565b90506020028101906116c4919061248e565b6040516116d29291906122bb565b90815260405190819003602001902055801561172c578260008b8b858181106116fd576116fd612362565b9050602002013581526020019081526020016000206001016000815480929190611726906125d7565b91905055505b506001016113c7565b5050505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156117875750825b90506000826001600160401b031660011480156117a35750303b155b9050811580156117b1575080155b156117cf5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117f957845460ff60401b1916600160401b1785555b611801611c43565b61180c600087611b22565b50831561185357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61186482610567565b61186d81611b15565b61067a8383611bc7565b600061188281611b15565b7f2820bf7f0bcf92e901021c9470a614652331fbef5e77eebe7a3799436b598901546000805160206127808339815191529060005b84811015611853573660008787848181106118d4576118d4612362565b90506020028101906118e6919061248e565b9150915060008560020183836040516119009291906122bb565b908152602001604051809103902054905080600014611b075760008660010160018361192c9190612326565b8154811061193c5761193c612362565b90600052602060002090600402016001015490506000801b811461197d576000818152602088905260408120600101805491611977836125f0565b91905055505b858214611a7a57866001016001876119959190612326565b815481106119a5576119a5612362565b9060005260206000209060040201876001016001846119c49190612326565b815481106119d4576119d4612362565b60009182526020909120600490910201806119ef8382612607565b506001820154816001015560028201816002019081611a0e9190612607565b50600381810190611a2190840182612607565b50905050818760020188600101600189611a3b9190612326565b81548110611a4b57611a4b612362565b9060005260206000209060040201600001604051611a6991906126d3565b908152604051908190036020019020555b86600101805480611a8d57611a8d612749565b60008281526020812060001990920191600483020190611aad8282611cd3565b6001820160009055600282016000611ac59190611cd3565b611ad3600383016000611cd3565b50509055866002018484604051611aeb9291906122bb565b9081526040519081900360200190206000905550600019909401935b8360010193505050506118b7565b611b1f8133611c4d565b50565b6000600080516020612760833981519152611b3d8484610f52565b611bbd576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b733390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610330565b6000915050610330565b6000600080516020612760833981519152611be28484610f52565b15611bbd576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610330565b611c4b611c8a565b565b611c578282610f52565b611c865760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610607565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611c4b57604051631afcd79f60e31b815260040160405180910390fd5b508054611cdf90612281565b6000825580601f10611cef575050565b601f016020900490600052602060002090810190611b1f91905b80821115611d1d5760008155600101611d09565b5090565b600060208284031215611d3357600080fd5b81356001600160e01b031981168114611d4b57600080fd5b9392505050565b6000815180845260005b81811015611d7857602081850181015186830182015201611d5c565b506000602082860101526020601f19601f83011685010191505092915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015611e3857603f19898403018552815160808151818652611de782870182611d52565b91505088820151898601528782015185820389870152611e078282611d52565b91505060608083015192508582038187015250611e248183611d52565b968901969450505090860190600101611dc1565b509098975050505050505050565b600060208284031215611e5857600080fd5b5035919050565b60008060208385031215611e7257600080fd5b82356001600160401b0380821115611e8957600080fd5b818501915085601f830112611e9d57600080fd5b813581811115611eac57600080fd5b866020828501011115611ebe57600080fd5b60209290920196919550909350505050565b80356001600160a01b0381168114611ee757600080fd5b919050565b60008060408385031215611eff57600080fd5b82359150611f0f60208401611ed0565b90509250929050565b60008060408385031215611f2b57600080fd5b50508035926020909101359150565b60008282518085526020808601955060208260051b8401016020860160005b84811015611f8757601f19868403018952611f75838351611d52565b98840198925090830190600101611f59565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015611fc557815187529582019590820190600101611fa9565b509495945050505050565b608081526000611fe36080830187611f3a565b8281036020840152611ff58187611f94565b905082810360408401526120098186611f3a565b9050828103606084015261201d8185611f3a565b979650505050505050565b60008083601f84011261203a57600080fd5b5081356001600160401b0381111561205157600080fd5b6020830191508360208260051b850101111561206c57600080fd5b9250929050565b6000806000806000806060878903121561208c57600080fd5b86356001600160401b03808211156120a357600080fd5b6120af8a838b01612028565b909850965060208901359150808211156120c857600080fd5b6120d48a838b01612028565b909650945060408901359150808211156120ed57600080fd5b506120fa89828a01612028565b979a9699509497509295939492505050565b6000806020838503121561211f57600080fd5b82356001600160401b0381111561213557600080fd5b61214185828601612028565b90969095509350505050565b6060815260006121606060830186611f94565b82810360208401526121728186611f3a565b905082810360408401526121868185611f3a565b9695505050505050565b602081526000611d4b6020830184611d52565b6000806000806000806000806080898b0312156121bf57600080fd5b88356001600160401b03808211156121d657600080fd5b6121e28c838d01612028565b909a50985060208b01359150808211156121fb57600080fd5b6122078c838d01612028565b909850965060408b013591508082111561222057600080fd5b61222c8c838d01612028565b909650945060608b013591508082111561224557600080fd5b506122528b828c01612028565b999c989b5096995094979396929594505050565b60006020828403121561227857600080fd5b611d4b82611ed0565b600181811c9082168061229557607f821691505b6020821081036122b557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006123086020830184866122cb565b949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561033057610330612310565b634e487b7160e01b600052604160045260246000fd5b8082018082111561033057610330612310565b634e487b7160e01b600052603260045260246000fd5b601f8211156106b3576000816000526020600020601f850160051c810160208610156123a15750805b601f850160051c820191505b81811015611853578281556001016123ad565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156123ee576123ee612339565b612402816123fc8454612281565b84612378565b602080601f831160018114612431576000841561241f5750858301515b61242985826123c0565b865550611853565b600085815260208120601f198616915b8281101561246057888601518255948401946001909101908401612441565b508582101561247e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808335601e198436030181126124a557600080fd5b8301803591506001600160401b038211156124bf57600080fd5b60200191503681900382131561206c57600080fd5b6060815260006124e860608301888a6122cb565b82810360208401526124fb8187896122cb565b905082810360408401526125108185876122cb565b9998505050505050505050565b6001600160401b0383111561253457612534612339565b612548836125428354612281565b83612378565b6000601f84116001811461257657600085156125645750838201355b61256e86826123c0565b8455506125d0565b600083815260209020601f19861690835b828110156125a75786850135825560209485019460019092019101612587565b50868210156125c45760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000600182016125e9576125e9612310565b5060010190565b6000816125ff576125ff612310565b506000190190565b818103612612575050565b61261c8254612281565b6001600160401b0381111561263357612633612339565b612641816123fc8454612281565b6000601f82116001811461266f576000831561265d5750848201545b61266784826123c0565b8555506125d0565b600085815260209020601f19841690600086815260209020845b838110156126a95782860154825560019586019590910190602001612689565b508583101561247e5793015460001960f8600387901b161c19169092555050600190811b01905550565b60008083546126e181612281565b600182811680156126f9576001811461270e5761273d565b60ff198416875282151583028701945061273d565b8760005260208060002060005b858110156127345781548a82015290840190820161271b565b50505082870194505b50929695505050505050565b634e487b7160e01b600052603160045260246000fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268002820bf7f0bcf92e901021c9470a614652331fbef5e77eebe7a3799436b598900a26469706673582212201625eb0bd788b01b7114cc6f54e70902b32a5ee3162ac1c9207ab76c89c8d1b064736f6c63430008180033