From 07d6f60900bcc854cab6cbf2c38a20dbaca29c67 Mon Sep 17 00:00:00 2001 From: Isaac Patka Date: Wed, 26 Apr 2023 22:11:16 -0400 Subject: [PATCH 1/4] propose --- contracts/src/Registration.sol | 45 +++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/contracts/src/Registration.sol b/contracts/src/Registration.sol index 5896e288..beeca021 100644 --- a/contracts/src/Registration.sol +++ b/contracts/src/Registration.sol @@ -7,6 +7,8 @@ import {Clones} from "openzeppelin/proxy/Clones.sol"; /// @title EIP-4824 DAOs /// @dev See interface EIP4824 { + event DAOURIUpdate(address daoAddress, string daoURI); + /// @notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated. function daoURI() external view returns (string memory _daoURI); } @@ -19,8 +21,6 @@ error OfferExpired(); /// @title EIP-4824: DAO Registration contract EIP4824Registration is EIP4824, AccessControl { - event NewURI(string daoURI, address daoAddress); - bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); string private _daoURI; @@ -67,7 +67,7 @@ contract EIP4824Registration is EIP4824, AccessControl { function _setURI(string memory daoURI_) internal { _daoURI = daoURI_; - emit NewURI(daoURI_, daoAddress); + emit DAOURIUpdate(daoAddress, daoURI_); } function daoURI() external view returns (string memory daoURI_) { @@ -90,11 +90,10 @@ contract EIP4824RegistrationSummoner { template = _template; } - function registrationAddress(address by, bytes32 salt) - external - view - returns (address addr, bool exists) - { + function registrationAddress( + address by, + bytes32 salt + ) external view returns (address addr, bool exists) { addr = Clones.predictDeterministicAddress( template, _saltedSalt(by, salt), @@ -140,10 +139,10 @@ contract EIP4824RegistrationSummoner { * @param data The `abi.encodeWithSelector` calldata for each of the contracts. * @return results The results of calling the contracts. */ - function _callContracts(address[] calldata contracts, bytes[] calldata data) - internal - returns (bytes[] memory results) - { + function _callContracts( + address[] calldata contracts, + bytes[] calldata data + ) internal returns (bytes[] memory results) { if (contracts.length != data.length) revert ArrayLengthsMismatch(); assembly { @@ -213,11 +212,10 @@ contract EIP4824RegistrationSummoner { } } - function _saltedSalt(address by, bytes32 salt) - internal - pure - returns (bytes32 result) - { + function _saltedSalt( + address by, + bytes32 salt + ) internal pure returns (bytes32 result) { assembly { // Store the variables into the scratch space. mstore(0x00, by) @@ -227,3 +225,16 @@ contract EIP4824RegistrationSummoner { } } } + +contract EIP4824MinimalRegistrationLog { + event DAOURIUpdate(address daoAddress, string daoURI); + + mapping(address => string) public daoURIs; + + constructor() {} + + function logRegistration(string calldata daoURI_) external { + daoURIs[msg.sender] = daoURI_; + emit DAOURIUpdate(msg.sender, daoURI_); // Require to be called by DAO itself. Can be called as many times as desired + } +} From 3cce9e278c3164ae3a7a4e1c7aaa5c22d20a9493 Mon Sep 17 00:00:00 2001 From: Isaac Patka Date: Thu, 27 Apr 2023 12:45:43 -0400 Subject: [PATCH 2/4] contract updates --- .../Deploy.s.sol/5/run-1682613258.json | 68 ++++++++ .../Deploy.s.sol/5/run-1682613323.json | 71 +++++++++ .../Deploy.s.sol/5/run-1682613426.json | 72 +++++++++ .../Deploy.s.sol/5/run-1682613440.json | 150 ++++++++++++++++++ .../Deploy.s.sol/5/run-1682613528.json | 150 ++++++++++++++++++ .../broadcast/Deploy.s.sol/5/run-latest.json | 126 +++++++++++---- contracts/script/Deploy.s.sol | 6 +- contracts/src/Registration.sol | 81 +++++++--- contracts/test/Registration.t.sol | 36 ++++- 9 files changed, 705 insertions(+), 55 deletions(-) create mode 100644 contracts/broadcast/Deploy.s.sol/5/run-1682613258.json create mode 100644 contracts/broadcast/Deploy.s.sol/5/run-1682613323.json create mode 100644 contracts/broadcast/Deploy.s.sol/5/run-1682613426.json create mode 100644 contracts/broadcast/Deploy.s.sol/5/run-1682613440.json create mode 100644 contracts/broadcast/Deploy.s.sol/5/run-1682613528.json diff --git a/contracts/broadcast/Deploy.s.sol/5/run-1682613258.json b/contracts/broadcast/Deploy.s.sol/5/run-1682613258.json new file mode 100644 index 00000000..868f93a2 --- /dev/null +++ b/contracts/broadcast/Deploy.s.sol/5/run-1682613258.json @@ -0,0 +1,68 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xA7A2948Bad8d439d714ac72Dee4A1ac879745244", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7b", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "EIP4824Registration", + "contractAddress": "0x190e1E111B9165B4153Af3407e155Ff0aa7F2Bca", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xfd370", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x7c", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "EIP4824RegistrationSummoner", + "contractAddress": "0x078816090039B247dCdeB71B7A4E6f41df8CCE91", + "function": null, + "arguments": [ + "0x190e1E111B9165B4153Af3407e155Ff0aa7F2Bca", + "0xA7A2948Bad8d439d714ac72Dee4A1ac879745244" + ], + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xa3485", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000190e1e111b9165b4153af3407e155ff0aa7f2bca000000000000000000000000a7a2948bad8d439d714ac72dee4a1ac879745244", + "nonce": "0x7d", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", + "returns": {}, + "timestamp": 1682613258, + "commit": "07d6f60" +} \ No newline at end of file diff --git a/contracts/broadcast/Deploy.s.sol/5/run-1682613323.json b/contracts/broadcast/Deploy.s.sol/5/run-1682613323.json new file mode 100644 index 00000000..c95bc5f3 --- /dev/null +++ b/contracts/broadcast/Deploy.s.sol/5/run-1682613323.json @@ -0,0 +1,71 @@ +{ + "transactions": [ + { + "hash": "0x849f79703f85946ce4065f4d411152237519435f6d63dcad2b6fedc7d9f35f29", + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xA7A2948Bad8d439d714ac72Dee4A1ac879745244", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7b", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x3d2cf24dbe62ac033cb12bdf981971c91b91b49289ec82f2aea8bca6327c446a", + "transactionType": "CREATE", + "contractName": "EIP4824Registration", + "contractAddress": "0x190e1E111B9165B4153Af3407e155Ff0aa7F2Bca", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xfd370", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x7c", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "EIP4824RegistrationSummoner", + "contractAddress": "0x078816090039B247dCdeB71B7A4E6f41df8CCE91", + "function": null, + "arguments": [ + "0x190e1E111B9165B4153Af3407e155Ff0aa7F2Bca", + "0xA7A2948Bad8d439d714ac72Dee4A1ac879745244" + ], + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xa3485", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000190e1e111b9165b4153af3407e155ff0aa7f2bca000000000000000000000000a7a2948bad8d439d714ac72dee4a1ac879745244", + "nonce": "0x7d", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0x849f79703f85946ce4065f4d411152237519435f6d63dcad2b6fedc7d9f35f29", + "0x3d2cf24dbe62ac033cb12bdf981971c91b91b49289ec82f2aea8bca6327c446a" + ], + "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", + "returns": {}, + "timestamp": 1682613323, + "commit": "07d6f60" +} \ No newline at end of file diff --git a/contracts/broadcast/Deploy.s.sol/5/run-1682613426.json b/contracts/broadcast/Deploy.s.sol/5/run-1682613426.json new file mode 100644 index 00000000..bcf2dbc7 --- /dev/null +++ b/contracts/broadcast/Deploy.s.sol/5/run-1682613426.json @@ -0,0 +1,72 @@ +{ + "transactions": [ + { + "hash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7f", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionType": "CREATE", + "contractName": "EIP4824Registration", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xfd370", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x80", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionType": "CREATE", + "contractName": "EIP4824RegistrationSummoner", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", + "function": null, + "arguments": [ + "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA" + ], + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xa3485", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000aeefc45ad77242788fee3e615642cd9c2c1261a8000000000000000000000000d8f49391ba81942d40c26a50f8ca63cdca6fb3da", + "nonce": "0x81", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61" + ], + "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", + "returns": {}, + "timestamp": 1682613426, + "commit": "07d6f60" +} \ No newline at end of file diff --git a/contracts/broadcast/Deploy.s.sol/5/run-1682613440.json b/contracts/broadcast/Deploy.s.sol/5/run-1682613440.json new file mode 100644 index 00000000..9a3f7463 --- /dev/null +++ b/contracts/broadcast/Deploy.s.sol/5/run-1682613440.json @@ -0,0 +1,150 @@ +{ + "transactions": [ + { + "hash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7f", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionType": "CREATE", + "contractName": "EIP4824Registration", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xfd370", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x80", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionType": "CREATE", + "contractName": "EIP4824RegistrationSummoner", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", + "function": null, + "arguments": [ + "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA" + ], + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xa3485", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000aeefc45ad77242788fee3e615642cd9c2c1261a8000000000000000000000000d8f49391ba81942d40c26a50f8ca63cdca6fb3da", + "nonce": "0x81", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [ + { + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x172ea7", + "gasUsed": "0x9e515", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "logs": [ + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xb", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000004000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000800000000000000000000000000000084000000000000800000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008000000000500000000020020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + }, + { + "transactionHash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionIndex": "0xc", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x235bfb", + "gasUsed": "0xc2d54", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + }, + { + "transactionHash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionIndex": "0xd", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x2b3625", + "gasUsed": "0x7da2a", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + } + ], + "libraries": [], + "pending": [], + "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", + "returns": {}, + "timestamp": 1682613440, + "commit": "07d6f60" +} \ No newline at end of file diff --git a/contracts/broadcast/Deploy.s.sol/5/run-1682613528.json b/contracts/broadcast/Deploy.s.sol/5/run-1682613528.json new file mode 100644 index 00000000..372a8720 --- /dev/null +++ b/contracts/broadcast/Deploy.s.sol/5/run-1682613528.json @@ -0,0 +1,150 @@ +{ + "transactions": [ + { + "hash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7f", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionType": "CREATE", + "contractName": "EIP4824Registration", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xfd370", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x80", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionType": "CREATE", + "contractName": "EIP4824RegistrationSummoner", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", + "function": null, + "arguments": [ + "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA" + ], + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xa3485", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000aeefc45ad77242788fee3e615642cd9c2c1261a8000000000000000000000000d8f49391ba81942d40c26a50f8ca63cdca6fb3da", + "nonce": "0x81", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [ + { + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x172ea7", + "gasUsed": "0x9e515", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "logs": [ + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xb", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000004000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000800000000000000000000000000000084000000000000800000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008000000000500000000020020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + }, + { + "transactionHash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionIndex": "0xc", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x235bfb", + "gasUsed": "0xc2d54", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + }, + { + "transactionHash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionIndex": "0xd", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x2b3625", + "gasUsed": "0x7da2a", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + } + ], + "libraries": [], + "pending": [], + "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", + "returns": {}, + "timestamp": 1682613528, + "commit": "07d6f60" +} \ No newline at end of file diff --git a/contracts/broadcast/Deploy.s.sol/5/run-latest.json b/contracts/broadcast/Deploy.s.sol/5/run-latest.json index dcfb422b..372a8720 100644 --- a/contracts/broadcast/Deploy.s.sol/5/run-latest.json +++ b/contracts/broadcast/Deploy.s.sol/5/run-latest.json @@ -1,39 +1,58 @@ { "transactions": [ { - "hash": "0xb55f591139d40cce5026faf4e73057f4bb66bc16b6bf981a3da012e5f362a7ea", + "hash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionType": "CREATE", + "contractName": "EIP4824Index", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", + "gas": "0xcdc1f", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "nonce": "0x7f", + "accessList": [] + }, + "additionalContracts": [] + }, + { + "hash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", "transactionType": "CREATE", "contractName": "EIP4824Registration", - "contractAddress": "0x6947D8d472127234d6d26bfCB65AC92e0d39BE56", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", "function": null, "arguments": null, "transaction": { "type": "0x02", "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", - "gas": "0xf1c96", + "gas": "0xfd370", "value": "0x0", - "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610c6a806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b1461016057806391d1485414610175578063a217fddf14610188578063d547741f14610190578063ec87621c146101a3578063f399e22e146101b857600080fd5b806301ffc9a7146100b957806302fe5305146100e1578063248a9ca3146100f65780632f2ff15d1461012757806336568abe1461013a5780634571e3a61461014d575b600080fd5b6100cc6100c736600461083b565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610908565b610202565b005b610119610104366004610945565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f461013536600461097a565b610227565b6100f461014836600461097a565b610251565b6100f461015b3660046109a6565b6102d0565b6101686102f2565b6040516100d89190610a60565b6100cc61018336600461097a565b610384565b610119600081565b6100f461019e36600461097a565b6103ad565b610119600080516020610c1583398151915281565b6100f46101c6366004610a73565b6103d2565b60006001600160e01b03198216637965db0b60e01b14806101fc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020610c1583398151915261021a81610442565b6102238261044f565b5050565b60008281526020819052604090206001015461024281610442565b61024c83836104ab565b505050565b6001600160a01b03811633146102c65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610223828261052f565b6102da83826103d2565b61024c600080516020610c15833981519152836104ab565b60606001805461030190610ac1565b80601f016020809104026020016040519081016040528092919081815260200182805461032d90610ac1565b801561037a5780601f1061034f5761010080835404028352916020019161037a565b820191906000526020600020905b81548152906001019060200180831161035d57829003601f168201915b5050505050905090565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000828152602081905260409020600101546103c881610442565b61024c838361052f565b6002546001600160a01b0316156103fb5760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b03841617905561041f8161044f565b61042a6000836104ab565b610223600080516020610c15833981519152836104ab565b61044c8133610594565b50565b80516104629060019060208401906107a2565b506002546040517fc7908db8c8588ac430ee4efe758e7ba70a0d22e32a138b548fd0d34fa8a48395916104a09184916001600160a01b031690610afb565b60405180910390a150565b6104b58282610384565b610223576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556104eb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105398282610384565b15610223576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61059e8282610384565b610223576105ab816105ed565b6105b68360206105ff565b6040516020016105c7929190610b25565b60408051601f198184030181529082905262461bcd60e51b82526102bd91600401610a60565b60606101fc6001600160a01b03831660145b6060600061060e836002610bb0565b610619906002610bcf565b67ffffffffffffffff81111561063157610631610865565b6040519080825280601f01601f19166020018201604052801561065b576020820181803683370190505b509050600360fc1b8160008151811061067657610676610be7565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106a5576106a5610be7565b60200101906001600160f81b031916908160001a90535060006106c9846002610bb0565b6106d4906001610bcf565b90505b600181111561074c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061070857610708610be7565b1a60f81b82828151811061071e5761071e610be7565b60200101906001600160f81b031916908160001a90535060049490941c9361074581610bfd565b90506106d7565b50831561079b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102bd565b9392505050565b8280546107ae90610ac1565b90600052602060002090601f0160209004810192826107d05760008555610816565b82601f106107e957805160ff1916838001178555610816565b82800160010185558215610816579182015b828111156108165782518255916020019190600101906107fb565b50610822929150610826565b5090565b5b808211156108225760008155600101610827565b60006020828403121561084d57600080fd5b81356001600160e01b03198116811461079b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261088c57600080fd5b813567ffffffffffffffff808211156108a7576108a7610865565b604051601f8301601f19908116603f011681019082821181831017156108cf576108cf610865565b816040528381528660208588010111156108e857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561091a57600080fd5b813567ffffffffffffffff81111561093157600080fd5b61093d8482850161087b565b949350505050565b60006020828403121561095757600080fd5b5035919050565b80356001600160a01b038116811461097557600080fd5b919050565b6000806040838503121561098d57600080fd5b8235915061099d6020840161095e565b90509250929050565b6000806000606084860312156109bb57600080fd5b6109c48461095e565b92506109d26020850161095e565b9150604084013567ffffffffffffffff8111156109ee57600080fd5b6109fa8682870161087b565b9150509250925092565b60005b83811015610a1f578181015183820152602001610a07565b83811115610a2e576000848401525b50505050565b60008151808452610a4c816020860160208601610a04565b601f01601f19169290920160200192915050565b60208152600061079b6020830184610a34565b60008060408385031215610a8657600080fd5b610a8f8361095e565b9150602083013567ffffffffffffffff811115610aab57600080fd5b610ab78582860161087b565b9150509250929050565b600181811c90821680610ad557607f821691505b602082108103610af557634e487b7160e01b600052602260045260246000fd5b50919050565b604081526000610b0e6040830185610a34565b905060018060a01b03831660208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b5d816017850160208801610a04565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610b8e816028840160208801610a04565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610bca57610bca610b9a565b500290565b60008219821115610be257610be2610b9a565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610c0c57610c0c610b9a565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a264697066735822122004434a16581c34b61e358a1d4d24811e4f6c8beda064df7cb0ff6ef504d6140364736f6c634300080d0033", - "nonce": "0x14", + "data": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "nonce": "0x80", "accessList": [] }, "additionalContracts": [] }, { - "hash": "0xde6ea5bd458909b7ab2fbc4abf80f26c89e3f97fe68c82f2edc226ffdcdfeaa8", + "hash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", "transactionType": "CREATE", "contractName": "EIP4824RegistrationSummoner", - "contractAddress": "0x5ef59b7cDe41b744f36b6e07fEF230884F800529", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", "function": null, "arguments": [ - "0x6947D8d472127234d6d26bfCB65AC92e0d39BE56" + "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", + "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA" ], "transaction": { "type": "0x02", "from": "0xb0be073cb0b350b26e432808f78d19e8447dd6dd", - "gas": "0x965a9", + "gas": "0xa3485", "value": "0x0", - "data": "0x608060405234801561001057600080fd5b506040516107be3803806107be83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61072b806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80634e7984ed146100465780636f2ddd931461007d578063c3b7822f146100a8575b600080fd5b61005961005436600461043a565b6100c9565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b600054610090906001600160a01b031681565b6040516001600160a01b039091168152602001610074565b6100bb6100b63660046104b0565b610160565b604051610074929190610590565b60008054819061014a906001600160a01b03166100f0868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6000805460609061018d906001600160a01b0316610188338d60009182526020526040902090565b6102c9565b91506001600160a01b038716610204576040516379ccf11760e11b81526001600160a01b0383169063f399e22e906101cd9033908d908d90600401610664565b600060405180830381600087803b1580156101e757600080fd5b505af11580156101fb573d6000803e3d6000fd5b50505050610269565b6040516322b8f1d360e11b81526001600160a01b03831690634571e3a6906102369033908b908e908e90600401610692565b600060405180830381600087803b15801561025057600080fd5b505af1158015610264573d6000803e3d6000fd5b505050505b61027586868686610370565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102b4939291906106c9565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661036a5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b606083821461039257604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461040f578035870180356020820184378782038a01356000808335866000855af16103de573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103ac565b50604052509095945050505050565b80356001600160a01b038116811461043557600080fd5b919050565b6000806040838503121561044d57600080fd5b6104568361041e565b946020939093013593505050565b60008083601f84011261047657600080fd5b50813567ffffffffffffffff81111561048e57600080fd5b6020830191508360208260051b85010111156104a957600080fd5b9250929050565b60008060008060008060008060a0898b0312156104cc57600080fd5b88359750602089013567ffffffffffffffff808211156104eb57600080fd5b818b0191508b601f8301126104ff57600080fd5b81358181111561050e57600080fd5b8c602082850101111561052057600080fd5b602083019950975061053460408c0161041e565b965060608b013591508082111561054a57600080fd5b6105568c838d01610464565b909650945060808b013591508082111561056f57600080fd5b5061057c8b828c01610464565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561062c57888703605f1901855282518051808952835b818110156105fc578281018901518a82018a015288016105e1565b8181111561060c578489838c0101525b50601f01601f1916979097018601965093850193918501916001016105c7565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090610689908301848661063b565b95945050505050565b6001600160a01b038581168252841660208201526060604082018190526000906106bf908301848661063b565b9695505050505050565b6040815260006106dd60408301858761063b565b905060018060a01b038316602083015294935050505056fea26469706673582212200a959a77672d8b5d6c3fc026b1a9c9049ca710d0674bfc4089aa733b59a7febd64736f6c634300080d00330000000000000000000000006947d8d472127234d6d26bfcb65ac92e0d39be56", - "nonce": "0x15", + "data": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033000000000000000000000000aeefc45ad77242788fee3e615642cd9c2c1261a8000000000000000000000000d8f49391ba81942d40c26a50f8ca63cdca6fb3da", + "nonce": "0x81", "accessList": [] }, "additionalContracts": [] @@ -41,42 +60,91 @@ ], "receipts": [ { - "transactionHash": "0xb55f591139d40cce5026faf4e73057f4bb66bc16b6bf981a3da012e5f362a7ea", - "transactionIndex": "0x12", - "blockHash": "0xbead734545a22f1533739c534f5d804b54e5242a1111c6daae110c82411a8570", - "blockNumber": "0x797099", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", + "to": null, + "cumulativeGasUsed": "0x172ea7", + "gasUsed": "0x9e515", + "contractAddress": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "logs": [ + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0xd8f49391Ba81942D40C26A50F8cA63cDcA6fb3dA", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0xe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd", + "0x000000000000000000000000b0be073cb0b350b26e432808f78d19e8447dd6dd" + ], + "data": "0x", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", + "transactionHash": "0xd6e3f67461dd42b345f480164a6bb996aa3c9893a10c00637d7de3d829a0f995", + "transactionIndex": "0xb", + "logIndex": "0xb", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000004000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000800000000000000000000000000000084000000000000800000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008000000000500000000020020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x6463dfc90" + }, + { + "transactionHash": "0x1a09a2b0d1572c48f2f87e2bca1b24c94ab4c33c29cf63058d436f2fb68d52f5", + "transactionIndex": "0xc", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", "to": null, - "cumulativeGasUsed": "0xb4e645", - "gasUsed": "0xb9fd6", - "contractAddress": "0x6947D8d472127234d6d26bfCB65AC92e0d39BE56", + "cumulativeGasUsed": "0x235bfb", + "gasUsed": "0xc2d54", + "contractAddress": "0xAEefc45ad77242788FEE3e615642cD9c2c1261A8", "logs": [], "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x876b8a8d0" + "effectiveGasPrice": "0x6463dfc90" }, { - "transactionHash": "0xde6ea5bd458909b7ab2fbc4abf80f26c89e3f97fe68c82f2edc226ffdcdfeaa8", - "transactionIndex": "0x13", - "blockHash": "0xbead734545a22f1533739c534f5d804b54e5242a1111c6daae110c82411a8570", - "blockNumber": "0x797099", + "transactionHash": "0x55889cde4cfb40f020d00fbdd2d831269d38625c387a237ff66f8529945e1e61", + "transactionIndex": "0xd", + "blockHash": "0xbbd7201004a5b89349663a5513de12f208a87bda9ece2768fe5cf0a8a0e2a8c1", + "blockNumber": "0x87d369", "from": "0xb0bE073cB0B350B26e432808F78d19E8447DD6DD", "to": null, - "cumulativeGasUsed": "0xbc20c7", - "gasUsed": "0x73a82", - "contractAddress": "0x5ef59b7cDe41b744f36b6e07fEF230884F800529", + "cumulativeGasUsed": "0x2b3625", + "gasUsed": "0x7da2a", + "contractAddress": "0x3271B3479f7485DAdB2bD5FFF43EEb4367B1a91a", "logs": [], "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x876b8a8d0" + "effectiveGasPrice": "0x6463dfc90" } ], "libraries": [], "pending": [], "path": "/Users/isaacpatka/metagov/daostar/contracts/broadcast/Deploy.s.sol/5/run-latest.json", "returns": {}, - "timestamp": 1668529155, - "commit": "eea9f11" + "timestamp": 1682613528, + "commit": "07d6f60" } \ No newline at end of file diff --git a/contracts/script/Deploy.s.sol b/contracts/script/Deploy.s.sol index a66e8b2b..bb497be8 100644 --- a/contracts/script/Deploy.s.sol +++ b/contracts/script/Deploy.s.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.13; import "forge-std/Script.sol"; -import {EIP4824Registration, EIP4824RegistrationSummoner} from "../src/Registration.sol"; +import {EIP4824Registration, EIP4824RegistrationSummoner, EIP4824Index} from "../src/Registration.sol"; contract ContractScript is Script { function setUp() public {} @@ -11,9 +11,11 @@ contract ContractScript is Script { function run() public { vm.startBroadcast(); + EIP4824Index index = new EIP4824Index(); EIP4824Registration template = new EIP4824Registration(); EIP4824RegistrationSummoner summoner = new EIP4824RegistrationSummoner( - address(template) + address(template), + address(index) ); vm.stopBroadcast(); diff --git a/contracts/src/Registration.sol b/contracts/src/Registration.sol index beeca021..40fb181b 100644 --- a/contracts/src/Registration.sol +++ b/contracts/src/Registration.sol @@ -2,17 +2,47 @@ pragma solidity 0.8.13; import {AccessControl} from "openzeppelin/access/AccessControl.sol"; +import {IERC165} from "openzeppelin/interfaces/IERC165.sol"; +import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {ERC165Checker} from "openzeppelin/utils/introspection/ERC165Checker.sol"; import {Clones} from "openzeppelin/proxy/Clones.sol"; /// @title EIP-4824 DAOs /// @dev See -interface EIP4824 { +interface IEIP4824 { event DAOURIUpdate(address daoAddress, string daoURI); /// @notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated. function daoURI() external view returns (string memory _daoURI); } +error EIP4824InterfaceNotSupported(); + +contract EIP4824Index is AccessControl { + using ERC165Checker for address; + + bytes32 public constant REGISTRATION_ROLE = keccak256("REGISTRATION_ROLE"); + + event DAOURIRegistered(address daoAddress); + + constructor() { + _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); + _grantRole(REGISTRATION_ROLE, msg.sender); + } + + function logRegistrationPermissioned( + address daoAddress + ) external onlyRole(REGISTRATION_ROLE) { + emit DAOURIRegistered(daoAddress); + } + + function logRegistration(address daoAddress) external { + if (!daoAddress.supportsInterface(type(IEIP4824).interfaceId)) + revert EIP4824InterfaceNotSupported(); + emit DAOURIRegistered(daoAddress); + } +} + error NotDaoOrManager(); error NotDao(); error NotCandidate(); @@ -20,7 +50,7 @@ error AlreadyInitialized(); error OfferExpired(); /// @title EIP-4824: DAO Registration -contract EIP4824Registration is EIP4824, AccessControl { +contract EIP4824Registration is IEIP4824, AccessControl { bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); string private _daoURI; @@ -39,9 +69,10 @@ contract EIP4824Registration is EIP4824, AccessControl { function initialize( address _daoAddress, address _manager, - string memory daoURI_ + string memory daoURI_, + address _eip4824Index ) external { - initialize(_daoAddress, daoURI_); + initialize(_daoAddress, daoURI_, _eip4824Index); _grantRole(MANAGER_ROLE, _manager); } @@ -49,13 +80,19 @@ contract EIP4824Registration is EIP4824, AccessControl { /// @dev Throws if initialized already /// @param _daoAddress The primary address for a DAO /// @param daoURI_ The URI which will resolve to the governance docs - function initialize(address _daoAddress, string memory daoURI_) public { + function initialize( + address _daoAddress, + string memory daoURI_, + address _eip4824Index + ) public { if (daoAddress != address(0)) revert AlreadyInitialized(); daoAddress = _daoAddress; _setURI(daoURI_); _grantRole(DEFAULT_ADMIN_ROLE, _daoAddress); _grantRole(MANAGER_ROLE, _daoAddress); + + EIP4824Index(_eip4824Index).logRegistration(address(this)); } /// @notice Update the URI for a DAO @@ -73,6 +110,14 @@ contract EIP4824Registration is EIP4824, AccessControl { function daoURI() external view returns (string memory daoURI_) { return _daoURI; } + + function supportsInterface( + bytes4 interfaceId + ) public view virtual override returns (bool) { + return + interfaceId == type(IEIP4824).interfaceId || + super.supportsInterface(interfaceId); + } } error ArrayLengthsMismatch(); @@ -84,10 +129,12 @@ contract EIP4824RegistrationSummoner { address registration ); + address public eip4824Index; address public template; /*Template contract to clone*/ - constructor(address _template) { + constructor(address _template, address _eip4824Index) { template = _template; + eip4824Index = _eip4824Index; } function registrationAddress( @@ -115,12 +162,17 @@ contract EIP4824RegistrationSummoner { ); if (manager == address(0)) { - EIP4824Registration(registration).initialize(msg.sender, daoURI_); + EIP4824Registration(registration).initialize( + msg.sender, + daoURI_, + eip4824Index + ); } else { EIP4824Registration(registration).initialize( msg.sender, manager, - daoURI_ + daoURI_, + eip4824Index ); } @@ -225,16 +277,3 @@ contract EIP4824RegistrationSummoner { } } } - -contract EIP4824MinimalRegistrationLog { - event DAOURIUpdate(address daoAddress, string daoURI); - - mapping(address => string) public daoURIs; - - constructor() {} - - function logRegistration(string calldata daoURI_) external { - daoURIs[msg.sender] = daoURI_; - emit DAOURIUpdate(msg.sender, daoURI_); // Require to be called by DAO itself. Can be called as many times as desired - } -} diff --git a/contracts/test/Registration.t.sol b/contracts/test/Registration.t.sol index 8871a893..0478820d 100644 --- a/contracts/test/Registration.t.sol +++ b/contracts/test/Registration.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; -import {EIP4824Registration, EIP4824RegistrationSummoner} from "../src/Registration.sol"; +import {EIP4824Registration, EIP4824RegistrationSummoner, EIP4824Index} from "../src/Registration.sol"; contract ContractTest is Test { address deployer; @@ -11,10 +11,13 @@ contract ContractTest is Test { address manager; address anyone; + EIP4824Index indexer; EIP4824RegistrationSummoner summoner; EIP4824Registration registration; EIP4824Registration registrationWithManager; + bytes32 public constant REGISTRATION_ROLE = keccak256("REGISTRATION_ROLE"); + uint256 salt = 1; string daoUri = "ipfs://dao"; @@ -31,8 +34,14 @@ contract ContractTest is Test { manager = getFundedAccount(3); anyone = getFundedAccount(4); + vm.startPrank(deployer); + indexer = new EIP4824Index(); EIP4824Registration template = new EIP4824Registration(); - summoner = new EIP4824RegistrationSummoner(address(template)); + summoner = new EIP4824RegistrationSummoner( + address(template), + address(indexer) + ); + vm.stopPrank(); address[] memory _targets = new address[](0); bytes[] memory _data = new bytes[](0); @@ -73,7 +82,7 @@ contract ContractTest is Test { // Cannot reinitialize vm.expectRevert(); - registration.initialize(dao, manager, daoUri); + registration.initialize(dao, manager, daoUri, address(indexer)); } function test_managerCannotSetUriIfNoManager() public _as(manager) { @@ -99,6 +108,27 @@ contract ContractTest is Test { assertEq(registrationWithManager.daoURI(), "new"); } + function test_LogRegistrationFailsWithNoERC165() public _as(dao) { + vm.expectRevert(); + indexer.logRegistration(dao); + } + + function test_LogRegistrationSucceedsWithDefaultRole() public { + vm.startPrank(deployer); + indexer.logRegistrationPermissioned(dao); + vm.stopPrank(); + } + + function test_LogRegistrationSucceedsWithRole() public { + vm.startPrank(deployer); + indexer.grantRole(REGISTRATION_ROLE, dao); + vm.stopPrank(); + + vm.startPrank(dao); + indexer.logRegistrationPermissioned(dao); + vm.stopPrank(); + } + function getFundedAccount(uint256 num) internal returns (address) { address addr = vm.addr(num); // Fund with some ETH From 07943885c7c4c88a1951ca39439101f2d25c1359 Mon Sep 17 00:00:00 2001 From: Isaac Patka Date: Thu, 27 Apr 2023 12:58:20 -0400 Subject: [PATCH 3/4] subgraph --- .../Subgraph/daostar/abis/EIP4824Index.json | 7261 ++++++++++++++++ .../daostar/abis/EIP4824Registration.json | 7647 ++++++++++++++++- .../abis/EIP4824RegistrationSummoner.json | 7052 ++++++++++++++- .../build/EIP4824Index/EIP4824Index.wasm | Bin 0 -> 33430 bytes .../build/EIP4824Index/abis/EIP4824Index.json | 268 + .../abis/EIP4824Registration.json | 24 +- .../Subgraph/daostar/build/subgraph.yaml | 24 +- .../generated/EIP4824Index/EIP4824Index.ts | 412 + .../EIP4824Registration.ts | 28 +- .../Subgraph/daostar/networks.json | 12 +- .../Subgraph/daostar/src/mapping.ts | 46 +- .../Subgraph/daostar/subgraph.yaml | 20 +- 12 files changed, 22369 insertions(+), 425 deletions(-) create mode 100644 Implementations/Subgraph/daostar/abis/EIP4824Index.json create mode 100644 Implementations/Subgraph/daostar/build/EIP4824Index/EIP4824Index.wasm create mode 100644 Implementations/Subgraph/daostar/build/EIP4824Index/abis/EIP4824Index.json create mode 100644 Implementations/Subgraph/daostar/generated/EIP4824Index/EIP4824Index.ts diff --git a/Implementations/Subgraph/daostar/abis/EIP4824Index.json b/Implementations/Subgraph/daostar/abis/EIP4824Index.json new file mode 100644 index 00000000..25401b5c --- /dev/null +++ b/Implementations/Subgraph/daostar/abis/EIP4824Index.json @@ -0,0 +1,7261 @@ +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "EIP4824InterfaceNotSupported", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "daoAddress", + "type": "address" + } + ], + "name": "DAOURIRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTRATION_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address" + } + ], + "name": "logRegistration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address" + } + ], + "name": "logRegistrationPermissioned", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b5061001c60003361004b565b6100467fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f42783361004b565b6100ea565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100a53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6109d1806100f96000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "sourceMap": "1361:735:17:-:0;;;1574:124;;;;;;;;;-1:-1:-1;1598:42:17;2072:4:6;1629:10:17;1598;:42::i;:::-;1650:41;1488:30;1680:10;1650;:41::i;:::-;1361:735;;7461:233:6;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:6;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:6;;;;;;;;;:36;;-1:-1:-1;;7582:36:6;7614:4;7582:36;;;7664:12;719:10:10;;640:96;7664:12:6;-1:-1:-1;;;;;7637:40:6;7655:7;-1:-1:-1;;;;;7637:40:6;7649:4;7637:40;;;;;;;;;;7539:149;7461:233;;:::o;1361:735:17:-;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806391d148541161006657806391d1485414610137578063a217fddf1461014a578063d547741f14610152578063ea5095b114610165578063fc65b8411461017857600080fd5b806301ffc9a7146100a35780630d67c955146100cb578063248a9ca3146100e05780632f2ff15d1461011157806336568abe14610124575b600080fd5b6100b66100b136600461078d565b61019f565b60405190151581526020015b60405180910390f35b6100de6100d93660046107d3565b6101d6565b005b6101036100ee3660046107ee565b60009081526020819052604090206001015490565b6040519081526020016100c2565b6100de61011f366004610807565b610240565b6100de610132366004610807565b61026a565b6100b6610145366004610807565b6102ed565b610103600081565b6100de610160366004610807565b610316565b6100de6101733660046107d3565b61033b565b6101037fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f427881565b60006001600160e01b03198216637965db0b60e01b14806101d057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7fe724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278610200816103b1565b6040516001600160a01b03831681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a15050565b60008281526020819052604090206001015461025b816103b1565b61026583836103be565b505050565b6001600160a01b03811633146102df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102e98282610442565b5050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610331816103b1565b6102658383610442565b6103556001600160a01b038216637034731b60e01b6104a7565b6103725760405163e311fe0960e01b815260040160405180910390fd5b6040516001600160a01b03821681527fd7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e77102639060200160405180910390a150565b6103bb81336104ca565b50565b6103c882826102ed565b6102e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103fe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61044c82826102ed565b156102e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006104b283610523565b80156104c357506104c38383610556565b9392505050565b6104d482826102ed565b6102e9576104e1816105df565b6104ec8360206105f1565b6040516020016104fd929190610863565b60408051601f198184030181529082905262461bcd60e51b82526102d6916004016108d8565b6000610536826301ffc9a760e01b610556565b80156101d0575061054f826001600160e01b0319610556565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156105c8575060208210155b80156105d45750600081115b979650505050505050565b60606101d06001600160a01b03831660145b60606000610600836002610921565b61060b906002610940565b67ffffffffffffffff81111561062357610623610958565b6040519080825280601f01601f19166020018201604052801561064d576020820181803683370190505b509050600360fc1b816000815181106106685761066861096e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106975761069761096e565b60200101906001600160f81b031916908160001a90535060006106bb846002610921565b6106c6906001610940565b90505b600181111561073e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106fa576106fa61096e565b1a60f81b8282815181106107105761071061096e565b60200101906001600160f81b031916908160001a90535060049490941c9361073781610984565b90506106c9565b5083156104c35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102d6565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104c357600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104c3826107b7565b60006020828403121561080057600080fd5b5035919050565b6000806040838503121561081a57600080fd5b8235915061082a602084016107b7565b90509250929050565b60005b8381101561084e578181015183820152602001610836565b8381111561085d576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161089b816017850160208801610833565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516108cc816028840160208801610833565b01602801949350505050565b60208152600082518060208401526108f7816040850160208701610833565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561093b5761093b61090b565b500290565b600082198211156109535761095361090b565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816109935761099361090b565b50600019019056fea2646970667358221220ae60f23aa11fb522036772a0e8c1a8e5b972db94e5a1bdad747a8cee4b0c626664736f6c634300080d0033", + "sourceMap": "1361:735:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:6;;;;;;:::i;:::-;;:::i;:::-;;;470:14:19;;463:22;445:41;;433:2;418:18;2606:202:6;;;;;;;;1704:158:17;;;;;;:::i;:::-;;:::i;:::-;;4378:129:6;;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;1197:25:19;;;1185:2;1170:18;4378:129:6;1051:177:19;4803:145:6;;;;;;:::i;:::-;;:::i;5912:214::-;;;;;;:::i;:::-;;:::i;2895:145::-;;;;;;:::i;:::-;;:::i;2027:49::-;;2072:4;2027:49;;5228:147;;;;;;:::i;:::-;;:::i;1868:226:17:-;;;;;;:::i;:::-;;:::i;1444:74::-;;1488:30;1444:74;;2606:202:6;2691:4;-1:-1:-1;;;;;;2714:47:6;;-1:-1:-1;;;2714:47:6;;:87;;-1:-1:-1;;;;;;;;;;937:40:12;;;2765:36:6;2707:94;2606:202;-1:-1:-1;;2606:202:6:o;1704:158:17:-;1488:30;2505:16:6;2516:4;2505:10;:16::i;:::-;1827:28:17::1;::::0;-1:-1:-1;;;;;1656:32:19;;1638:51;;1827:28:17::1;::::0;1626:2:19;1611:18;1827:28:17::1;;;;;;;1704:158:::0;;:::o;4803:145:6:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;5912:214::-;-1:-1:-1;;;;;6007:23:6;;719:10:10;6007:23:6;5999:83;;;;-1:-1:-1;;;5999:83:6;;1902:2:19;5999:83:6;;;1884:21:19;1941:2;1921:18;;;1914:30;1980:34;1960:18;;;1953:62;-1:-1:-1;;;2031:18:19;;;2024:45;2086:19;;5999:83:6;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;2895:145::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:6;;;;;;;;;;;;;;;2895:145::o;5228:147::-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;1868:226:17:-:0;1937:56;-1:-1:-1;;;;;1937:28:17;;-1:-1:-1;;;1937:28:17;:56::i;:::-;1932:112;;2014:30;;-1:-1:-1;;;2014:30:17;;;;;;;;;;;1932:112;2059:28;;-1:-1:-1;;;;;1656:32:19;;1638:51;;2059:28:17;;1626:2:19;1611:18;2059:28:17;;;;;;;1868:226;:::o;3334:103:6:-;3400:30;3411:4;719:10:10;3400::6;:30::i;:::-;3334:103;:::o;7461:233::-;7544:22;7552:4;7558:7;7544;:22::i;:::-;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:6;;;;;;;;;:36;;-1:-1:-1;;7582:36:6;7614:4;7582:36;;;7664:12;719:10:10;;640:96;7664:12:6;-1:-1:-1;;;;;7637:40:6;7655:7;-1:-1:-1;;;;;7637:40:6;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;7948:22;7956:4;7962:7;7948;:22::i;:::-;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:6;;;;;;;;;;:37;;-1:-1:-1;;7986:37:6;;;8042:40;719:10:10;;7986:12:6;;8042:40;;8018:5;8042:40;7865:234;;:::o;1349:282:13:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:13:o;3718:479:6:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:6;;;;;;;;;;-1:-1:-1;;;3844:336:6;;;;;;;:::i;704:427:13:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:13;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:13;1093:7;-1:-1:-1;;;;;;1060:32:13;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:13:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;3720:33:19;;4433:71:13;;;;3702:52:19;;;;4433:71:13;;;;;;;;;;3675:18:19;;;;4433:71:13;;;;;;;;;-1:-1:-1;;;;;4433:71:13;-1:-1:-1;;;4433:71:13;;;4712:20;;4364:4;;4433:71;4364:4;;;;;;4433:71;4364:4;;4712:20;4677:7;4670:5;4659:86;4648:97;;4772:16;4758:30;;4822:4;4816:11;4801:26;;4854:7;:29;;;;;4879:4;4865:10;:18;;4854:29;:48;;;;;4901:1;4887:11;:15;4854:48;4847:55;4262:647;-1:-1:-1;;;;;;;4262:647:13:o;2102:149:11:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:11;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:11;;1613:47;;-1:-1:-1;;;1670:6:11;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1670:15:11;;;;;;;;;-1:-1:-1;;;1695:6:11;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1695:15:11;;;;;;;;-1:-1:-1;1725:9:11;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;-1:-1:-1;;;1800:5:11;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1779:33:11;;;;;;;;-1:-1:-1;1836:1:11;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:11;;1857:55;;;;-1:-1:-1;;;1857:55:11;;4810:2:19;1857:55:11;;;4792:21:19;;;4829:18;;;4822:30;4888:34;4868:18;;;4861:62;4940:18;;1857:55:11;4608:356:19;14:286;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:19;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:19;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:186::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;866:180::-;925:6;978:2;966:9;957:7;953:23;949:32;946:52;;;994:1;991;984:12;946:52;-1:-1:-1;1017:23:19;;866:180;-1:-1:-1;866:180:19:o;1233:254::-;1301:6;1309;1362:2;1350:9;1341:7;1337:23;1333:32;1330:52;;;1378:1;1375;1368:12;1330:52;1414:9;1401:23;1391:33;;1443:38;1477:2;1466:9;1462:18;1443:38;:::i;:::-;1433:48;;1233:254;;;;;:::o;2116:258::-;2188:1;2198:113;2212:6;2209:1;2206:13;2198:113;;;2288:11;;;2282:18;2269:11;;;2262:39;2234:2;2227:10;2198:113;;;2329:6;2326:1;2323:13;2320:48;;;2364:1;2355:6;2350:3;2346:16;2339:27;2320:48;;2116:258;;;:::o;2379:786::-;2790:25;2785:3;2778:38;2760:3;2845:6;2839:13;2861:62;2916:6;2911:2;2906:3;2902:12;2895:4;2887:6;2883:17;2861:62;:::i;:::-;-1:-1:-1;;;2982:2:19;2942:16;;;2974:11;;;2967:40;3032:13;;3054:63;3032:13;3103:2;3095:11;;3088:4;3076:17;;3054:63;:::i;:::-;3137:17;3156:2;3133:26;;2379:786;-1:-1:-1;;;;2379:786:19:o;3170:383::-;3319:2;3308:9;3301:21;3282:4;3351:6;3345:13;3394:6;3389:2;3378:9;3374:18;3367:34;3410:66;3469:6;3464:2;3453:9;3449:18;3444:2;3436:6;3432:15;3410:66;:::i;:::-;3537:2;3516:15;-1:-1:-1;;3512:29:19;3497:45;;;;3544:2;3493:54;;3170:383;-1:-1:-1;;3170:383:19:o;3765:127::-;3826:10;3821:3;3817:20;3814:1;3807:31;3857:4;3854:1;3847:15;3881:4;3878:1;3871:15;3897:168;3937:7;4003:1;3999;3995:6;3991:14;3988:1;3985:21;3980:1;3973:9;3966:17;3962:45;3959:71;;;4010:18;;:::i;:::-;-1:-1:-1;4050:9:19;;3897:168::o;4070:128::-;4110:3;4141:1;4137:6;4134:1;4131:13;4128:39;;;4147:18;;:::i;:::-;-1:-1:-1;4183:9:19;;4070:128::o;4203:127::-;4264:10;4259:3;4255:20;4252:1;4245:31;4295:4;4292:1;4285:15;4319:4;4316:1;4309:15;4335:127;4396:10;4391:3;4387:20;4384:1;4377:31;4427:4;4424:1;4417:15;4451:4;4448:1;4441:15;4467:136;4506:3;4534:5;4524:39;;4543:18;;:::i;:::-;-1:-1:-1;;;4579:18:19;;4467:136::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "REGISTRATION_ROLE()": "fc65b841", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "logRegistration(address)": "ea5095b1", + "logRegistrationPermissioned(address)": "0d67c955", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EIP4824InterfaceNotSupported\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"DAOURIRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRATION_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"logRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"logRegistrationPermissioned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Registration.sol\":\"EIP4824Index\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7\",\"dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44\",\"dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC\"]},\"src/Registration.sol\":{\"keccak256\":\"0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d\",\"dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.13+commit.abaa5c0e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "type": "error", + "name": "EIP4824InterfaceNotSupported" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "DAOURIRegistered", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32", + "indexed": true + } + ], + "type": "event", + "name": "RoleAdminChanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "RoleGranted", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "RoleRevoked", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "REGISTRATION_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "grantRole" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "logRegistration" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "logRegistrationPermissioned" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceRole" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "revokeRole" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/Registration.sol": "EIP4824Index" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/access/AccessControl.sol": { + "keccak256": "0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a", + "urls": [ + "bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe", + "dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol": { + "keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57", + "urls": [ + "bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a", + "dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol": { + "keccak256": "0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a", + "urls": [ + "bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb", + "dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol": { + "keccak256": "0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10", + "urls": [ + "bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7", + "dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", + "urls": [ + "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", + "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": { + "keccak256": "0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46", + "urls": [ + "bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b", + "dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8", + "urls": [ + "bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44", + "dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC" + ], + "license": "MIT" + }, + "src/Registration.sol": { + "keccak256": "0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47", + "urls": [ + "bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d", + "dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/Registration.sol", + "id": 23815, + "exportedSymbols": { + "AccessControl": [ + 21867 + ], + "AlreadyInitialized": [ + 23477 + ], + "ArrayLengthsMismatch": [ + 23638 + ], + "Clones": [ + 22023 + ], + "EIP4824Index": [ + 23469 + ], + "EIP4824InterfaceNotSupported": [ + 23403 + ], + "EIP4824Registration": [ + 23636 + ], + "EIP4824RegistrationSummoner": [ + 23814 + ], + "ERC165": [ + 22244 + ], + "ERC165Checker": [ + 22438 + ], + "IEIP4824": [ + 23401 + ], + "IERC165": [ + 22450 + ], + "NotCandidate": [ + 23475 + ], + "NotDao": [ + 23473 + ], + "NotDaoOrManager": [ + 23471 + ], + "OfferExpired": [ + 23479 + ] + }, + "nodeType": "SourceUnit", + "src": "32:10735:17", + "nodes": [ + { + "id": 23377, + "nodeType": "PragmaDirective", + "src": "32:23:17", + "literals": [ + "solidity", + "0.8", + ".13" + ] + }, + { + "id": 23379, + "nodeType": "ImportDirective", + "src": "57:68:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/access/AccessControl.sol", + "file": "openzeppelin/access/AccessControl.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21868, + "symbolAliases": [ + { + "foreign": { + "id": 23378, + "name": "AccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21867, + "src": "65:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23381, + "nodeType": "ImportDirective", + "src": "126:60:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol", + "file": "openzeppelin/interfaces/IERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21944, + "symbolAliases": [ + { + "foreign": { + "id": 23380, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22450, + "src": "134:7:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23383, + "nodeType": "ImportDirective", + "src": "187:67:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol", + "file": "openzeppelin/utils/introspection/ERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22245, + "symbolAliases": [ + { + "foreign": { + "id": 23382, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22244, + "src": "195:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23385, + "nodeType": "ImportDirective", + "src": "255:81:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol", + "file": "openzeppelin/utils/introspection/ERC165Checker.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22439, + "symbolAliases": [ + { + "foreign": { + "id": 23384, + "name": "ERC165Checker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22438, + "src": "263:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23387, + "nodeType": "ImportDirective", + "src": "337:53:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "file": "openzeppelin/proxy/Clones.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22024, + "symbolAliases": [ + { + "foreign": { + "id": 23386, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "345:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23401, + "nodeType": "ContractDefinition", + "src": "472:848:17", + "nodes": [ + { + "id": 23394, + "nodeType": "EventDefinition", + "src": "497:54:17", + "anonymous": false, + "eventSelector": "70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd", + "name": "DAOURIUpdate", + "nameLocation": "503:12:17", + "parameters": { + "id": 23393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23390, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "524:10:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "516:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "516:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23392, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "543:6:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "536:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23391, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "515:35:17" + } + }, + { + "id": 23400, + "nodeType": "FunctionDefinition", + "src": "1254:64:17", + "documentation": { + "id": 23395, + "nodeType": "StructuredDocumentation", + "src": "557:692:17", + "text": "@notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the \"EIP-4824 DAO JSON-LD Schema\". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the \"EIP-4824 Members JSON-LD Schema\". The proposalsURI should point to a JSON file that conforms to the \"EIP-4824 Proposals JSON-LD Schema\". The activityLogURI should point to a JSON file that conforms to the \"EIP-4824 Activity Log JSON-LD Schema\". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated." + }, + "functionSelector": "7034731b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "1263:6:17", + "parameters": { + "id": 23396, + "nodeType": "ParameterList", + "parameters": [], + "src": "1269:2:17" + }, + "returnParameters": { + "id": 23399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23398, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "1309:7:17", + "nodeType": "VariableDeclaration", + "scope": 23400, + "src": "1295:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23397, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1295:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1294:23:17" + }, + "scope": 23401, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IEIP4824", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 23388, + "nodeType": "StructuredDocumentation", + "src": "392:80:17", + "text": "@title EIP-4824 DAOs\n @dev See " + }, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 23401 + ], + "name": "IEIP4824", + "nameLocation": "482:8:17", + "scope": 23815, + "usedErrors": [] + }, + { + "id": 23403, + "nodeType": "ErrorDefinition", + "src": "1322:37:17", + "errorSelector": "e311fe09", + "name": "EIP4824InterfaceNotSupported", + "nameLocation": "1328:28:17", + "parameters": { + "id": 23402, + "nodeType": "ParameterList", + "parameters": [], + "src": "1356:2:17" + } + }, + { + "id": 23469, + "nodeType": "ContractDefinition", + "src": "1361:735:17", + "nodes": [ + { + "id": 23408, + "nodeType": "UsingForDirective", + "src": "1406:32:17", + "global": false, + "libraryName": { + "id": 23406, + "name": "ERC165Checker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 22438, + "src": "1412:13:17" + }, + "typeName": { + "id": 23407, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1430:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 23413, + "nodeType": "VariableDeclaration", + "src": "1444:74:17", + "constant": true, + "functionSelector": "fc65b841", + "mutability": "constant", + "name": "REGISTRATION_ROLE", + "nameLocation": "1468:17:17", + "scope": 23469, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23409, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1444:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354524154494f4e5f524f4c45", + "id": 23411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1498:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + }, + "value": "REGISTRATION_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + } + ], + "id": 23410, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1488:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1488:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23417, + "nodeType": "EventDefinition", + "src": "1525:43:17", + "anonymous": false, + "eventSelector": "d7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e7710263", + "name": "DAOURIRegistered", + "nameLocation": "1531:16:17", + "parameters": { + "id": 23416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23415, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1556:10:17", + "nodeType": "VariableDeclaration", + "scope": 23417, + "src": "1548:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1547:20:17" + } + }, + { + "id": 23433, + "nodeType": "FunctionDefinition", + "src": "1574:124:17", + "body": { + "id": 23432, + "nodeType": "Block", + "src": "1588:110:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23421, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "1609:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1629:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1629:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23420, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1598:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1598:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23425, + "nodeType": "ExpressionStatement", + "src": "1598:42:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23427, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1661:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23428, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1680:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1680:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23426, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1650:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1650:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23431, + "nodeType": "ExpressionStatement", + "src": "1650:41:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23418, + "nodeType": "ParameterList", + "parameters": [], + "src": "1585:2:17" + }, + "returnParameters": { + "id": 23419, + "nodeType": "ParameterList", + "parameters": [], + "src": "1588:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23446, + "nodeType": "FunctionDefinition", + "src": "1704:158:17", + "body": { + "id": 23445, + "nodeType": "Block", + "src": "1812:50:17", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 23442, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23435, + "src": "1844:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23441, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "1827:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1827:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23444, + "nodeType": "EmitStatement", + "src": "1822:33:17" + } + ] + }, + "functionSelector": "0d67c955", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23438, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1793:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23439, + "kind": "modifierInvocation", + "modifierName": { + "id": 23437, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "1784:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "1784:27:17" + } + ], + "name": "logRegistrationPermissioned", + "nameLocation": "1713:27:17", + "parameters": { + "id": 23436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23435, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1758:10:17", + "nodeType": "VariableDeclaration", + "scope": 23446, + "src": "1750:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1750:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1740:34:17" + }, + "returnParameters": { + "id": 23440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1812:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23468, + "nodeType": "FunctionDefinition", + "src": "1868:226:17", + "body": { + "id": 23467, + "nodeType": "Block", + "src": "1922:172:17", + "statements": [ + { + "condition": { + "id": 23458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1936:57:17", + "subExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 23454, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "1971:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23453, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1966:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1966:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1966:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23451, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "1937:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 22294, + "src": "1937:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 23457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1937:56:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23462, + "nodeType": "IfStatement", + "src": "1932:112:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23459, + "name": "EIP4824InterfaceNotSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23403, + "src": "2014:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2014:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23461, + "nodeType": "RevertStatement", + "src": "2007:37:17" + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 23464, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "2076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23463, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "2059:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2059:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23466, + "nodeType": "EmitStatement", + "src": "2054:33:17" + } + ] + }, + "functionSelector": "ea5095b1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "logRegistration", + "nameLocation": "1877:15:17", + "parameters": { + "id": 23449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23448, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1901:10:17", + "nodeType": "VariableDeclaration", + "scope": 23468, + "src": "1893:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1893:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1892:20:17" + }, + "returnParameters": { + "id": 23450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1922:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23404, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "1386:13:17" + }, + "id": 23405, + "nodeType": "InheritanceSpecifier", + "src": "1386:13:17" + } + ], + "canonicalName": "EIP4824Index", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23469, + 21867, + 22244, + 22450, + 21940, + 22045 + ], + "name": "EIP4824Index", + "nameLocation": "1370:12:17", + "scope": 23815, + "usedErrors": [ + 23403 + ] + }, + { + "id": 23471, + "nodeType": "ErrorDefinition", + "src": "2098:24:17", + "errorSelector": "6a2a0b81", + "name": "NotDaoOrManager", + "nameLocation": "2104:15:17", + "parameters": { + "id": 23470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2119:2:17" + } + }, + { + "id": 23473, + "nodeType": "ErrorDefinition", + "src": "2123:15:17", + "errorSelector": "23f3e44a", + "name": "NotDao", + "nameLocation": "2129:6:17", + "parameters": { + "id": 23472, + "nodeType": "ParameterList", + "parameters": [], + "src": "2135:2:17" + } + }, + { + "id": 23475, + "nodeType": "ErrorDefinition", + "src": "2139:21:17", + "errorSelector": "4f32a51b", + "name": "NotCandidate", + "nameLocation": "2145:12:17", + "parameters": { + "id": 23474, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:17" + } + }, + { + "id": 23477, + "nodeType": "ErrorDefinition", + "src": "2161:27:17", + "errorSelector": "0dc149f0", + "name": "AlreadyInitialized", + "nameLocation": "2167:18:17", + "parameters": { + "id": 23476, + "nodeType": "ParameterList", + "parameters": [], + "src": "2185:2:17" + } + }, + { + "id": 23479, + "nodeType": "ErrorDefinition", + "src": "2189:21:17", + "errorSelector": "9cb13087", + "name": "OfferExpired", + "nameLocation": "2195:12:17", + "parameters": { + "id": 23478, + "nodeType": "ParameterList", + "parameters": [], + "src": "2207:2:17" + } + }, + { + "id": 23636, + "nodeType": "ContractDefinition", + "src": "2250:2218:17", + "nodes": [ + { + "id": 23489, + "nodeType": "VariableDeclaration", + "src": "2312:64:17", + "constant": true, + "functionSelector": "ec87621c", + "mutability": "constant", + "name": "MANAGER_ROLE", + "nameLocation": "2336:12:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2312:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "4d414e414745525f524f4c45", + "id": 23487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2361:14:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + }, + "value": "MANAGER_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + } + ], + "id": 23486, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2351:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2351:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23491, + "nodeType": "VariableDeclaration", + "src": "2383:22:17", + "constant": false, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "2398:7:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 23490, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2383:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 23493, + "nodeType": "VariableDeclaration", + "src": "2412:18:17", + "constant": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "2420:10:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2412:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "id": 23504, + "nodeType": "FunctionDefinition", + "src": "2437:59:17", + "body": { + "id": 23503, + "nodeType": "Block", + "src": "2451:45:17", + "statements": [ + { + "expression": { + "id": 23501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23496, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "2461:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "307864656164", + "id": 23499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2482:6:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + }, + "value": "0xdead" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + } + ], + "id": 23498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2474:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:17", + "typeDescriptions": {} + } + }, + "id": 23500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2474:15:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2461:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23502, + "nodeType": "ExpressionStatement", + "src": "2461:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23494, + "nodeType": "ParameterList", + "parameters": [], + "src": "2448:2:17" + }, + "returnParameters": { + "id": 23495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2451:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23528, + "nodeType": "FunctionDefinition", + "src": "2807:260:17", + "body": { + "id": 23527, + "nodeType": "Block", + "src": "2959:108:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23517, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23507, + "src": "2980:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23518, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23511, + "src": "2993:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 23519, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23513, + "src": "3002:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23516, + "name": "initialize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23577, + "src": "2969:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2969:47:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23521, + "nodeType": "ExpressionStatement", + "src": "2969:47:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23523, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3037:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23524, + "name": "_manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23509, + "src": "3051:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23522, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3026:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23526, + "nodeType": "ExpressionStatement", + "src": "3026:34:17" + } + ] + }, + "documentation": { + "id": 23505, + "nodeType": "StructuredDocumentation", + "src": "2502:300:17", + "text": "@notice Set the initial DAO URI and offer manager role to an address\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param _manager The address of the URI manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "09c26fb1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2816:10:17", + "parameters": { + "id": 23514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23507, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "2844:11:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2836:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2836:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23509, + "mutability": "mutable", + "name": "_manager", + "nameLocation": "2873:8:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2865:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2865:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23511, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "2905:7:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2891:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23510, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2891:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23513, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "2930:13:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2922:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2922:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2826:123:17" + }, + "returnParameters": { + "id": 23515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2959:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23577, + "nodeType": "FunctionDefinition", + "src": "3286:428:17", + "body": { + "id": 23576, + "nodeType": "Block", + "src": "3410:304:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23538, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3424:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3446:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3438:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3438:7:17", + "typeDescriptions": {} + } + }, + "id": 23542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3438:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3424:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23547, + "nodeType": "IfStatement", + "src": "3420:57:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23544, + "name": "AlreadyInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23477, + "src": "3457:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3457:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23546, + "nodeType": "RevertStatement", + "src": "3450:27:17" + } + }, + { + "expression": { + "id": 23550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23548, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3487:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23549, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3500:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3487:24:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23551, + "nodeType": "ExpressionStatement", + "src": "3487:24:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23553, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23533, + "src": "3529:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23552, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3521:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3521:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23555, + "nodeType": "ExpressionStatement", + "src": "3521:16:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23557, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "3559:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23558, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3579:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23556, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3548:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3548:43:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23560, + "nodeType": "ExpressionStatement", + "src": "3548:43:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23562, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3612:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23563, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3626:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23561, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3601:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23565, + "nodeType": "ExpressionStatement", + "src": "3601:37:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 23572, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3701:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + ], + "id": 23571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3693:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3693:7:17", + "typeDescriptions": {} + } + }, + "id": 23573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3693:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23567, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23535, + "src": "3662:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23566, + "name": "EIP4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23469, + "src": "3649:12:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Index_$23469_$", + "typeString": "type(contract EIP4824Index)" + } + }, + "id": 23568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Index_$23469", + "typeString": "contract EIP4824Index" + } + }, + "id": 23569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "logRegistration", + "nodeType": "MemberAccess", + "referencedDeclaration": 23468, + "src": "3649:43:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 23574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:58:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23575, + "nodeType": "ExpressionStatement", + "src": "3649:58:17" + } + ] + }, + "documentation": { + "id": 23529, + "nodeType": "StructuredDocumentation", + "src": "3073:208:17", + "text": "@notice Set the initial DAO URI\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "7bb7c0d8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "3295:10:17", + "parameters": { + "id": 23536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23531, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "3323:11:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3315:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23533, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3358:7:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3344:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23532, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3344:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23535, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "3383:13:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3375:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3305:97:17" + }, + "returnParameters": { + "id": 23537, + "nodeType": "ParameterList", + "parameters": [], + "src": "3410:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23591, + "nodeType": "FunctionDefinition", + "src": "3886:102:17", + "body": { + "id": 23590, + "nodeType": "Block", + "src": "3955:33:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23587, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23580, + "src": "3973:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23586, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3965:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3965:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23589, + "nodeType": "ExpressionStatement", + "src": "3965:16:17" + } + ] + }, + "documentation": { + "id": 23578, + "nodeType": "StructuredDocumentation", + "src": "3720:161:17", + "text": "@notice Update the URI for a DAO\n @dev Throws if not called by dao or manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "02fe5305", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23583, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3941:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23584, + "kind": "modifierInvocation", + "modifierName": { + "id": 23582, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "3932:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "3932:22:17" + } + ], + "name": "setURI", + "nameLocation": "3895:6:17", + "parameters": { + "id": 23581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23580, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3916:7:17", + "nodeType": "VariableDeclaration", + "scope": 23591, + "src": "3902:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3902:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3901:23:17" + }, + "returnParameters": { + "id": 23585, + "nodeType": "ParameterList", + "parameters": [], + "src": "3955:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23606, + "nodeType": "FunctionDefinition", + "src": "3994:131:17", + "body": { + "id": 23605, + "nodeType": "Block", + "src": "4043:82:17", + "statements": [ + { + "expression": { + "id": 23598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23596, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4053:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23597, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4063:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "4053:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 23599, + "nodeType": "ExpressionStatement", + "src": "4053:17:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 23601, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "4098:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23602, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4110:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23600, + "name": "DAOURIUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23394, + "src": "4085:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 23603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4085:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23604, + "nodeType": "EmitStatement", + "src": "4080:38:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nameLocation": "4003:7:17", + "parameters": { + "id": 23594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23593, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4025:7:17", + "nodeType": "VariableDeclaration", + "scope": 23606, + "src": "4011:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23592, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4011:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4010:23:17" + }, + "returnParameters": { + "id": 23595, + "nodeType": "ParameterList", + "parameters": [], + "src": "4043:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23614, + "nodeType": "FunctionDefinition", + "src": "4131:95:17", + "body": { + "id": 23613, + "nodeType": "Block", + "src": "4195:31:17", + "statements": [ + { + "expression": { + "id": 23611, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4212:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 23610, + "id": 23612, + "nodeType": "Return", + "src": "4205:14:17" + } + ] + }, + "baseFunctions": [ + 23400 + ], + "functionSelector": "7034731b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "4140:6:17", + "parameters": { + "id": 23607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4146:2:17" + }, + "returnParameters": { + "id": 23610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23609, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4186:7:17", + "nodeType": "VariableDeclaration", + "scope": 23614, + "src": "4172:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23608, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4172:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4171:23:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23635, + "nodeType": "FunctionDefinition", + "src": "4232:234:17", + "body": { + "id": 23634, + "nodeType": "Block", + "src": "4337:129:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 23632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 23627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23622, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4366:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 23624, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "4386:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23623, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4381:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4381:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "4381:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "4366:41:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 23630, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4447:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23628, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "4423:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_EIP4824Registration_$23636_$", + "typeString": "type(contract super EIP4824Registration)" + } + }, + "id": 23629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 21612, + "src": "4423:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 23631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4366:93:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 23621, + "id": 23633, + "nodeType": "Return", + "src": "4347:112:17" + } + ] + }, + "baseFunctions": [ + 21612 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "4241:17:17", + "overrides": { + "id": 23618, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4313:8:17" + }, + "parameters": { + "id": 23617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23616, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "4275:11:17", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4268:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 23615, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4268:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "4258:34:17" + }, + "returnParameters": { + "id": 23621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23620, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4331:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23619, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4331:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4330:6:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23481, + "name": "IEIP4824", + "nodeType": "IdentifierPath", + "referencedDeclaration": 23401, + "src": "2282:8:17" + }, + "id": 23482, + "nodeType": "InheritanceSpecifier", + "src": "2282:8:17" + }, + { + "baseName": { + "id": 23483, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "2292:13:17" + }, + "id": 23484, + "nodeType": "InheritanceSpecifier", + "src": "2292:13:17" + } + ], + "canonicalName": "EIP4824Registration", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 23480, + "nodeType": "StructuredDocumentation", + "src": "2212:38:17", + "text": "@title EIP-4824: DAO Registration" + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23636, + 21867, + 22244, + 22450, + 21940, + 22045, + 23401 + ], + "name": "EIP4824Registration", + "nameLocation": "2259:19:17", + "scope": 23815, + "usedErrors": [ + 23477 + ] + }, + { + "id": 23638, + "nodeType": "ErrorDefinition", + "src": "4470:29:17", + "errorSelector": "3b800a46", + "name": "ArrayLengthsMismatch", + "nameLocation": "4476:20:17", + "parameters": { + "id": 23637, + "nodeType": "ParameterList", + "parameters": [], + "src": "4496:2:17" + } + }, + { + "id": 23814, + "nodeType": "ContractDefinition", + "src": "4501:6265:17", + "nodes": [ + { + "id": 23646, + "nodeType": "EventDefinition", + "src": "4544:117:17", + "anonymous": false, + "eventSelector": "e9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a4", + "name": "NewRegistration", + "nameLocation": "4550:15:17", + "parameters": { + "id": 23645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23640, + "indexed": true, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "4591:10:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4575:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4575:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23642, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "4618:6:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4611:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23641, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4611:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23644, + "indexed": false, + "mutability": "mutable", + "name": "registration", + "nameLocation": "4642:12:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4634:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4634:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4565:95:17" + } + }, + { + "id": 23648, + "nodeType": "VariableDeclaration", + "src": "4667:27:17", + "constant": false, + "functionSelector": "9481f966", + "mutability": "mutable", + "name": "eip4824Index", + "nameLocation": "4682:12:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4667:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23650, + "nodeType": "VariableDeclaration", + "src": "4700:23:17", + "constant": false, + "functionSelector": "6f2ddd93", + "mutability": "mutable", + "name": "template", + "nameLocation": "4715:8:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4700:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23666, + "nodeType": "FunctionDefinition", + "src": "4761:129:17", + "body": { + "id": 23665, + "nodeType": "Block", + "src": "4815:75:17", + "statements": [ + { + "expression": { + "id": 23659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23657, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "4825:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23658, + "name": "_template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23652, + "src": "4836:9:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4825:20:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23660, + "nodeType": "ExpressionStatement", + "src": "4825:20:17" + }, + { + "expression": { + "id": 23663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23661, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "4855:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23662, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23654, + "src": "4870:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4855:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23664, + "nodeType": "ExpressionStatement", + "src": "4855:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23652, + "mutability": "mutable", + "name": "_template", + "nameLocation": "4781:9:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4773:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4773:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23654, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "4800:13:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4792:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4792:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4772:42:17" + }, + "returnParameters": { + "id": 23656, + "nodeType": "ParameterList", + "parameters": [], + "src": "4815:0:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23701, + "nodeType": "FunctionDefinition", + "src": "4896:318:17", + "body": { + "id": 23700, + "nodeType": "Block", + "src": "5023:191:17", + "statements": [ + { + "expression": { + "id": 23690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23677, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5033:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23680, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5088:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 23682, + "name": "by", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23668, + "src": "5122:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23683, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23670, + "src": "5126:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23681, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5110:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5110:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 23687, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5153:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + ], + "id": 23686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5145:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:17", + "typeDescriptions": {} + } + }, + "id": 23688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5145:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 23678, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5040:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "predictDeterministicAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 22002, + "src": "5040:34:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes32,address) pure returns (address)" + } + }, + "id": 23689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5040:128:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5033:135:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23691, + "nodeType": "ExpressionStatement", + "src": "5033:135:17" + }, + { + "expression": { + "id": 23698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23692, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23675, + "src": "5178:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 23693, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5187:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5187:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 23695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5187:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 23696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5206:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5187:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5178:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23699, + "nodeType": "ExpressionStatement", + "src": "5178:29:17" + } + ] + }, + "functionSelector": "4e7984ed", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registrationAddress", + "nameLocation": "4905:19:17", + "parameters": { + "id": 23671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23668, + "mutability": "mutable", + "name": "by", + "nameLocation": "4942:2:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4934:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4934:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23670, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4962:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4954:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4954:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4924:48:17" + }, + "returnParameters": { + "id": 23676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23673, + "mutability": "mutable", + "name": "addr", + "nameLocation": "5004:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4996:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4996:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23675, + "mutability": "mutable", + "name": "exists", + "nameLocation": "5015:6:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "5010:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23674, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5010:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4995:27:17" + }, + "scope": 23814, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23778, + "nodeType": "FunctionDefinition", + "src": "5220:897:17", + "body": { + "id": 23777, + "nodeType": "Block", + "src": "5467:650:17", + "statements": [ + { + "expression": { + "id": 23731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23721, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5477:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23724, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5531:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 23726, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5565:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5565:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23728, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23703, + "src": "5577:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23725, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5553:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5553:29:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 23722, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5492:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "cloneDeterministic", + "nodeType": "MemberAccess", + "referencedDeclaration": 21988, + "src": "5492:25:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (address,bytes32) returns (address)" + } + }, + "id": 23730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5492:100:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5477:115:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23732, + "nodeType": "ExpressionStatement", + "src": "5477:115:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23733, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5607:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5626:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5618:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5618:7:17", + "typeDescriptions": {} + } + }, + "id": 23737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5618:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5607:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 23761, + "nodeType": "Block", + "src": "5802:191:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5878:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5878:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23756, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5906:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23757, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5931:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23758, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5956:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23751, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5836:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23750, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5816:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23528, + "src": "5816:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,address,string memory,address) external" + } + }, + "id": 23759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:166:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23760, + "nodeType": "ExpressionStatement", + "src": "5816:166:17" + } + ] + }, + "id": 23762, + "nodeType": "IfStatement", + "src": "5603:390:17", + "trueBody": { + "id": 23749, + "nodeType": "Block", + "src": "5630:166:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23743, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5706:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5706:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23745, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5734:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23746, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5759:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23740, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5664:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23739, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5644:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23577, + "src": "5644:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address) external" + } + }, + "id": 23747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:141:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23748, + "nodeType": "ExpressionStatement", + "src": "5644:141:17" + } + ] + } + }, + { + "expression": { + "id": 23768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23763, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23719, + "src": "6003:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23765, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23710, + "src": "6028:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 23766, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23713, + "src": "6039:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + ], + "id": 23764, + "name": "_callContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23802, + "src": "6013:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (address[] calldata,bytes calldata[] calldata) returns (bytes memory[] memory)" + } + }, + "id": 23767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6013:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "6003:41:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 23769, + "nodeType": "ExpressionStatement", + "src": "6003:41:17" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 23771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6076:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23773, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "6088:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23774, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "6097:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23770, + "name": "NewRegistration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23646, + "src": "6060:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6060:50:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23776, + "nodeType": "EmitStatement", + "src": "6055:55:17" + } + ] + }, + "functionSelector": "c3b7822f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "summonRegistration", + "nameLocation": "5229:18:17", + "parameters": { + "id": 23714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23703, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5265:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5257:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23702, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5257:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23705, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "5295:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5279:23:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23704, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5279:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23707, + "mutability": "mutable", + "name": "manager", + "nameLocation": "5320:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5312:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5312:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23710, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "5356:9:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5337:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5337:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23709, + "nodeType": "ArrayTypeName", + "src": "5337:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23713, + "mutability": "mutable", + "name": "data", + "nameLocation": "5392:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5375:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23711, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5375:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23712, + "nodeType": "ArrayTypeName", + "src": "5375:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5247:155:17" + }, + "returnParameters": { + "id": 23720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23716, + "mutability": "mutable", + "name": "registration", + "nameLocation": "5429:12:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5421:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5421:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23719, + "mutability": "mutable", + "name": "results", + "nameLocation": "5458:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5443:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23717, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5443:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23718, + "nodeType": "ArrayTypeName", + "src": "5443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5420:46:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23802, + "nodeType": "FunctionDefinition", + "src": "6590:3797:17", + "body": { + "id": 23801, + "nodeType": "Block", + "src": "6731:3656:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 23791, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23782, + "src": "6745:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 23792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6745:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 23793, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23785, + "src": "6765:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 23794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6765:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6745:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23799, + "nodeType": "IfStatement", + "src": "6741:66:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23796, + "name": "ArrayLengthsMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23638, + "src": "6785:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23798, + "nodeType": "RevertStatement", + "src": "6778:29:17" + } + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "6827:3554:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7026:22:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7043:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7037:5:17" + }, + "nodeType": "YulFunctionCall", + "src": "7037:11:17" + }, + "variableNames": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7026:7:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7134:7:17" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7143:11:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7127:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7127:28:17" + }, + "nodeType": "YulExpressionStatement", + "src": "7127:28:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7238:40:17", + "value": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7264:7:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7273:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7260:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7260:18:17" + }, + "variables": [ + { + "name": "resultsOffsets", + "nodeType": "YulTypedName", + "src": "7242:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7439:59:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7465:11:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7482:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7485:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7478:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7478:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7461:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7461:37:17" + }, + "variables": [ + { + "name": "dataOffsetsEnd", + "nodeType": "YulTypedName", + "src": "7443:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7653:49:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "7666:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7686:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7689:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7682:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7682:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7662:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7662:40:17" + }, + "variables": [ + { + "name": "m", + "nodeType": "YulTypedName", + "src": "7657:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7888:2369:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7961:42:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7974:11:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8000:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7987:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "7987:15:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7970:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7970:33:17" + }, + "variables": [ + { + "name": "o", + "nodeType": "YulTypedName", + "src": "7965:1:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "8123:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8186:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8189:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8182:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8182:12:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8284:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8271:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8271:15:17" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "8089:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8089:248:17" + }, + "nodeType": "YulExpressionStatement", + "src": "8089:248:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8632:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "contracts.offset", + "nodeType": "YulIdentifier", + "src": "8658:16:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8680:1:17" + }, + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "8683:11:17" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8676:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8676:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8654:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8654:42:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8641:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8641:56:17" + }, + "variables": [ + { + "name": "c", + "nodeType": "YulTypedName", + "src": "8636:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9281:200:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9383:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9389:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9395:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9395:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9368:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9368:44:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9368:44:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9440:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9446:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9446:16:17" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9433:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9433:30:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:30:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nodeType": "YulIdentifier", + "src": "8843:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8843:5:17" + }, + { + "name": "c", + "nodeType": "YulIdentifier", + "src": "8892:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8938:1:17", + "type": "", + "value": "0" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9000:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "9086:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9073:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "9073:15:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9147:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9207:4:17", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "call", + "nodeType": "YulIdentifier", + "src": "8813:4:17" + }, + "nodeType": "YulFunctionCall", + "src": "8813:449:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8785:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "8785:495:17" + }, + "nodeType": "YulIf", + "src": "8782:699:17" + }, + { + "expression": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9570:14:17" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9586:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9563:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9563:25:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9563:25:17" + }, + { + "nodeType": "YulAssignment", + "src": "9605:43:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9627:14:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9643:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9623:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9623:25:17" + }, + "variableNames": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9605:14:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9736:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9739:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9739:16:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9729:27:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:27:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9848:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9851:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9844:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9844:12:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9858:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9864:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9864:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9829:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9829:52:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9829:52:17" + }, + { + "nodeType": "YulAssignment", + "src": "10178:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10195:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "10198:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "10198:16:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10191:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10191:24:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10217:4:17", + "type": "", + "value": "0x3f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10187:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10187:35:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10224:18:17", + "type": "", + "value": "0xffffffffffffffe0" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10183:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10183:60:17" + }, + "variableNames": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10178:1:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7846:1:17" + }, + { + "name": "dataOffsetsEnd", + "nodeType": "YulIdentifier", + "src": "7849:14:17" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7843:2:17" + }, + "nodeType": "YulFunctionCall", + "src": "7843:21:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7836:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7836:29:17" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7866:21:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7868:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7877:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7880:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7873:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7873:12:17" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7868:1:17" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7811:24:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7813:20:17", + "value": { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7822:11:17" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7817:1:17", + "type": "" + } + ] + } + ] + }, + "src": "7807:2450:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10363:4:17", + "type": "", + "value": "0x40" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10369:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10356:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10356:15:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10356:15:17" + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23782, + "isOffset": true, + "isSlot": false, + "src": "8658:16:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7143:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7485:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7689:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7465:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7822:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7974:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "8683:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7026:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7134:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7264:7:17", + "valueSize": 1 + } + ], + "id": 23800, + "nodeType": "InlineAssembly", + "src": "6818:3563:17" + } + ] + }, + "documentation": { + "id": 23779, + "nodeType": "StructuredDocumentation", + "src": "6313:272:17", + "text": " @dev Call the `contracts` in order with `data`.\n @param contracts The addresses of the contracts.\n @param data The `abi.encodeWithSelector` calldata for each of the contracts.\n @return results The results of calling the contracts." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callContracts", + "nameLocation": "6599:14:17", + "parameters": { + "id": 23786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23782, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "6642:9:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6623:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6623:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23781, + "nodeType": "ArrayTypeName", + "src": "6623:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23785, + "mutability": "mutable", + "name": "data", + "nameLocation": "6678:4:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6661:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23783, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6661:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23784, + "nodeType": "ArrayTypeName", + "src": "6661:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6613:75:17" + }, + "returnParameters": { + "id": 23790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23789, + "mutability": "mutable", + "name": "results", + "nameLocation": "6722:7:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6707:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23787, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6707:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23788, + "nodeType": "ArrayTypeName", + "src": "6707:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6706:24:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23813, + "nodeType": "FunctionDefinition", + "src": "10393:371:17", + "body": { + "id": 23812, + "nodeType": "Block", + "src": "10501:263:17", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "10520:238:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10600:4:17", + "type": "", + "value": "0x00" + }, + { + "name": "by", + "nodeType": "YulIdentifier", + "src": "10606:2:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10593:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10593:16:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10593:16:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10629:4:17", + "type": "", + "value": "0x20" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "10635:4:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10622:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10622:18:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10622:18:17" + }, + { + "nodeType": "YulAssignment", + "src": "10717:31:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10737:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10743:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "10727:9:17" + }, + "nodeType": "YulFunctionCall", + "src": "10727:21:17" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "10717:6:17" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23804, + "isOffset": false, + "isSlot": false, + "src": "10606:2:17", + "valueSize": 1 + }, + { + "declaration": 23809, + "isOffset": false, + "isSlot": false, + "src": "10717:6:17", + "valueSize": 1 + }, + { + "declaration": 23806, + "isOffset": false, + "isSlot": false, + "src": "10635:4:17", + "valueSize": 1 + } + ], + "id": 23811, + "nodeType": "InlineAssembly", + "src": "10511:247:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_saltedSalt", + "nameLocation": "10402:11:17", + "parameters": { + "id": 23807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23804, + "mutability": "mutable", + "name": "by", + "nameLocation": "10431:2:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10423:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10423:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23806, + "mutability": "mutable", + "name": "salt", + "nameLocation": "10451:4:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10443:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23805, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10413:48:17" + }, + "returnParameters": { + "id": 23810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23809, + "mutability": "mutable", + "name": "result", + "nameLocation": "10493:6:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10485:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23808, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10485:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10484:16:17" + }, + "scope": 23814, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "EIP4824RegistrationSummoner", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23814 + ], + "name": "EIP4824RegistrationSummoner", + "nameLocation": "4510:27:17", + "scope": 23815, + "usedErrors": [ + 23638 + ] + } + ], + "license": "MIT" + }, + "id": 17 +} \ No newline at end of file diff --git a/Implementations/Subgraph/daostar/abis/EIP4824Registration.json b/Implementations/Subgraph/daostar/abis/EIP4824Registration.json index 893b715f..a6b108ec 100644 --- a/Implementations/Subgraph/daostar/abis/EIP4824Registration.json +++ b/Implementations/Subgraph/daostar/abis/EIP4824Registration.json @@ -1,315 +1,7410 @@ -[ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "daoAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "daoURI", + "type": "string" + } + ], + "name": "DAOURIUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "daoURI", + "outputs": [ + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daoAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_manager", + "type": "address" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daoAddress", + "type": "address" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b50600280546001600160a01b03191661dead179055610d11806100346000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "sourceMap": "2250:2218:17:-:0;;;2437:59;;;;;;;;;-1:-1:-1;2461:10:17;:28;;-1:-1:-1;;;;;;2461:28:17;2482:6;2461:28;;;2250:2218;;;;;;", + "linkReferences": {} }, - { - "inputs": [], - "name": "AlreadyInitialized", - "type": "error" + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637034731b116100715780637034731b146101605780637bb7c0d81461017557806391d1485414610188578063a217fddf1461019b578063d547741f146101a3578063ec87621c146101b657600080fd5b806301ffc9a7146100b957806302fe5305146100e157806309c26fb1146100f6578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014d575b600080fd5b6100cc6100c73660046108cb565b6101cb565b60405190151581526020015b60405180910390f35b6100f46100ef366004610998565b6101f6565b005b6100f46101043660046109f1565b61021b565b61012c610117366004610a60565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6100f4610148366004610a79565b610244565b6100f461015b366004610a79565b61026e565b6101686102ed565b6040516100d89190610afd565b6100f4610183366004610b10565b61037f565b6100cc610196366004610a79565b61044d565b61012c600081565b6100f46101b1366004610a79565b610476565b61012c600080516020610cbc83398151915281565b60006001600160e01b03198216637034731b60e01b14806101f057506101f08261049b565b92915050565b600080516020610cbc83398151915261020e816104d0565b610217826104dd565b5050565b61022684838361037f565b61023e600080516020610cbc8339815191528461053b565b50505050565b60008281526020819052604090206001015461025f816104d0565b610269838361053b565b505050565b6001600160a01b03811633146102e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61021782826105bf565b6060600180546102fc90610b6e565b80601f016020809104026020016040519081016040528092919081815260200182805461032890610b6e565b80156103755780601f1061034a57610100808354040283529160200191610375565b820191906000526020600020905b81548152906001019060200180831161035857829003601f168201915b5050505050905090565b6002546001600160a01b0316156103a85760405162dc149f60e41b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385161790556103cc826104dd565b6103d760008461053b565b6103ef600080516020610cbc8339815191528461053b565b60405163ea5095b160e01b81523060048201526001600160a01b0382169063ea5095b190602401600060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b50505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260208190526040902060010154610491816104d0565b61026983836105bf565b60006001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316146101f0565b6104da8133610624565b50565b80516104f0906001906020840190610832565b506002546040517f70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd91610530916001600160a01b03909116908490610ba8565b60405180910390a150565b610545828261044d565b610217576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561057b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6105c9828261044d565b15610217576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61062e828261044d565b6102175761063b8161067d565b61064683602061068f565b604051602001610657929190610bcc565b60408051601f198184030181529082905262461bcd60e51b82526102da91600401610afd565b60606101f06001600160a01b03831660145b6060600061069e836002610c57565b6106a9906002610c76565b67ffffffffffffffff8111156106c1576106c16108f5565b6040519080825280601f01601f1916602001820160405280156106eb576020820181803683370190505b509050600360fc1b8160008151811061070657610706610c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061073557610735610c8e565b60200101906001600160f81b031916908160001a9053506000610759846002610c57565b610764906001610c76565b90505b60018111156107dc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061079857610798610c8e565b1a60f81b8282815181106107ae576107ae610c8e565b60200101906001600160f81b031916908160001a90535060049490941c936107d581610ca4565b9050610767565b50831561082b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102da565b9392505050565b82805461083e90610b6e565b90600052602060002090601f01602090048101928261086057600085556108a6565b82601f1061087957805160ff19168380011785556108a6565b828001600101855582156108a6579182015b828111156108a657825182559160200191906001019061088b565b506108b29291506108b6565b5090565b5b808211156108b257600081556001016108b7565b6000602082840312156108dd57600080fd5b81356001600160e01b03198116811461082b57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261091c57600080fd5b813567ffffffffffffffff80821115610937576109376108f5565b604051601f8301601f19908116603f0116810190828211818310171561095f5761095f6108f5565b8160405283815286602085880101111561097857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156109aa57600080fd5b813567ffffffffffffffff8111156109c157600080fd5b6109cd8482850161090b565b949350505050565b80356001600160a01b03811681146109ec57600080fd5b919050565b60008060008060808587031215610a0757600080fd5b610a10856109d5565b9350610a1e602086016109d5565b9250604085013567ffffffffffffffff811115610a3a57600080fd5b610a468782880161090b565b925050610a55606086016109d5565b905092959194509250565b600060208284031215610a7257600080fd5b5035919050565b60008060408385031215610a8c57600080fd5b82359150610a9c602084016109d5565b90509250929050565b60005b83811015610ac0578181015183820152602001610aa8565b8381111561023e5750506000910152565b60008151808452610ae9816020860160208601610aa5565b601f01601f19169290920160200192915050565b60208152600061082b6020830184610ad1565b600080600060608486031215610b2557600080fd5b610b2e846109d5565b9250602084013567ffffffffffffffff811115610b4a57600080fd5b610b568682870161090b565b925050610b65604085016109d5565b90509250925092565b600181811c90821680610b8257607f821691505b602082108103610ba257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b03831681526040602082018190526000906109cd90830184610ad1565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610c04816017850160208801610aa5565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610c35816028840160208801610aa5565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610c7157610c71610c41565b500290565b60008219821115610c8957610c89610c41565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610cb357610cb3610c41565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220195f5f00288ff270b950e75829db30f07179f058251bba0ac043e9fe69d8ddb364736f6c634300080d0033", + "sourceMap": "2250:2218:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4232:234;;;;;;:::i;:::-;;:::i;:::-;;;470:14:19;;463:22;445:41;;433:2;418:18;4232:234:17;;;;;;;;3886:102;;;;;;:::i;:::-;;:::i;:::-;;2807:260;;;;;;:::i;:::-;;:::i;4378:129:6:-;;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;2739:25:19;;;2727:2;2712:18;4378:129:6;2593:177:19;4803:145:6;;;;;;:::i;:::-;;:::i;5912:214::-;;;;;;:::i;:::-;;:::i;4131:95:17:-;;;:::i;:::-;;;;;;;:::i;3286:428::-;;;;;;:::i;:::-;;:::i;2895:145:6:-;;;;;;:::i;:::-;;:::i;2027:49::-;;2072:4;2027:49;;5228:147;;;;;;:::i;:::-;;:::i;2312:64:17:-;;-1:-1:-1;;;;;;;;;;;2312:64:17;;4232:234;4331:4;-1:-1:-1;;;;;;4366:41:17;;-1:-1:-1;;;4366:41:17;;:93;;;4423:36;4447:11;4423:23;:36::i;:::-;4347:112;4232:234;-1:-1:-1;;4232:234:17:o;3886:102::-;-1:-1:-1;;;;;;;;;;;2505:16:6;2516:4;2505:10;:16::i;:::-;3965::17::1;3973:7;3965;:16::i;:::-;3886:102:::0;;:::o;2807:260::-;2969:47;2980:11;2993:7;3002:13;2969:10;:47::i;:::-;3026:34;-1:-1:-1;;;;;;;;;;;3051:8:17;3026:10;:34::i;:::-;2807:260;;;;:::o;4803:145:6:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;5912:214::-;-1:-1:-1;;;;;6007:23:6;;719:10:10;6007:23:6;5999:83;;;;-1:-1:-1;;;5999:83:6;;4462:2:19;5999:83:6;;;4444:21:19;4501:2;4481:18;;;4474:30;4540:34;4520:18;;;4513:62;-1:-1:-1;;;4591:18:19;;;4584:45;4646:19;;5999:83:6;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;4131:95:17:-;4172:21;4212:7;4205:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4131:95;:::o;3286:428::-;3424:10;;-1:-1:-1;;;;;3424:10:17;:24;3420:57;;3457:20;;-1:-1:-1;;;3457:20:17;;;;;;;;;;;3420:57;3487:10;:24;;-1:-1:-1;;;;;;3487:24:17;-1:-1:-1;;;;;3487:24:17;;;;;3521:16;3529:7;3521;:16::i;:::-;3548:43;2072:4:6;3579:11:17;3548:10;:43::i;:::-;3601:37;-1:-1:-1;;;;;;;;;;;3626:11:17;3601:10;:37::i;:::-;3649:58;;-1:-1:-1;;;3649:58:17;;3701:4;3649:58;;;5207:51:19;-1:-1:-1;;;;;3649:43:17;;;;;5180:18:19;;3649:58:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:428;;;:::o;2895:145:6:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:6;;;;;;;;;;;;;;;2895:145::o;5228:147::-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;2606:202::-:0;2691:4;-1:-1:-1;;;;;;2714:47:6;;-1:-1:-1;;;2714:47:6;;:87;;-1:-1:-1;;;;;;;;;;937:40:12;;;2765:36:6;829:155:12;3334:103:6;3400:30;3411:4;719:10:10;3400::6;:30::i;:::-;3334:103;:::o;3994:131:17:-;4053:17;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;4098:10:17;;4085:33;;;;;;-1:-1:-1;;;;;4098:10:17;;;;4110:7;;4085:33;:::i;:::-;;;;;;;;3994:131;:::o;7461:233:6:-;7544:22;7552:4;7558:7;7544;:22::i;:::-;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:6;;;;;;;;;:36;;-1:-1:-1;;7582:36:6;7614:4;7582:36;;;7664:12;719:10:10;;640:96;7664:12:6;-1:-1:-1;;;;;7637:40:6;7655:7;-1:-1:-1;;;;;7637:40:6;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;7948:22;7956:4;7962:7;7948;:22::i;:::-;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:6;;;;;;;;;;:37;;-1:-1:-1;;7986:37:6;;;8042:40;719:10:10;;7986:12:6;;8042:40;;8018:5;8042:40;7865:234;;:::o;3718:479::-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:6;;;;;;;;;;-1:-1:-1;;;3844:336:6;;;;;;;:::i;2102:149:11:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:11;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:11;;1613:47;;-1:-1:-1;;;1670:6:11;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1670:15:11;;;;;;;;;-1:-1:-1;;;1695:6:11;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1695:15:11;;;;;;;;-1:-1:-1;1725:9:11;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;-1:-1:-1;;;1800:5:11;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1779:33:11;;;;;;;;-1:-1:-1;1836:1:11;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:11;;1857:55;;;;-1:-1:-1;;;1857:55:11;;7295:2:19;1857:55:11;;;7277:21:19;;;7314:18;;;7307:30;7373:34;7353:18;;;7346:62;7425:18;;1857:55:11;7093:356:19;1857:55:11;1936:6;1513:437;-1:-1:-1;;;1513:437:11:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:286:19;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:19;;209:43;;199:71;;266:1;263;256:12;497:127;558:10;553:3;549:20;546:1;539:31;589:4;586:1;579:15;613:4;610:1;603:15;629:719;672:5;725:3;718:4;710:6;706:17;702:27;692:55;;743:1;740;733:12;692:55;779:6;766:20;805:18;842:2;838;835:10;832:36;;;848:18;;:::i;:::-;923:2;917:9;891:2;977:13;;-1:-1:-1;;973:22:19;;;997:2;969:31;965:40;953:53;;;1021:18;;;1041:22;;;1018:46;1015:72;;;1067:18;;:::i;:::-;1107:10;1103:2;1096:22;1142:2;1134:6;1127:18;1188:3;1181:4;1176:2;1168:6;1164:15;1160:26;1157:35;1154:55;;;1205:1;1202;1195:12;1154:55;1269:2;1262:4;1254:6;1250:17;1243:4;1235:6;1231:17;1218:54;1316:1;1309:4;1304:2;1296:6;1292:15;1288:26;1281:37;1336:6;1327:15;;;;;;629:719;;;;:::o;1353:322::-;1422:6;1475:2;1463:9;1454:7;1450:23;1446:32;1443:52;;;1491:1;1488;1481:12;1443:52;1531:9;1518:23;1564:18;1556:6;1553:30;1550:50;;;1596:1;1593;1586:12;1550:50;1619;1661:7;1652:6;1641:9;1637:22;1619:50;:::i;:::-;1609:60;1353:322;-1:-1:-1;;;;1353:322:19:o;1680:173::-;1748:20;;-1:-1:-1;;;;;1797:31:19;;1787:42;;1777:70;;1843:1;1840;1833:12;1777:70;1680:173;;;:::o;1858:545::-;1954:6;1962;1970;1978;2031:3;2019:9;2010:7;2006:23;2002:33;1999:53;;;2048:1;2045;2038:12;1999:53;2071:29;2090:9;2071:29;:::i;:::-;2061:39;;2119:38;2153:2;2142:9;2138:18;2119:38;:::i;:::-;2109:48;;2208:2;2197:9;2193:18;2180:32;2235:18;2227:6;2224:30;2221:50;;;2267:1;2264;2257:12;2221:50;2290;2332:7;2323:6;2312:9;2308:22;2290:50;:::i;:::-;2280:60;;;2359:38;2393:2;2382:9;2378:18;2359:38;:::i;:::-;2349:48;;1858:545;;;;;;;:::o;2408:180::-;2467:6;2520:2;2508:9;2499:7;2495:23;2491:32;2488:52;;;2536:1;2533;2526:12;2488:52;-1:-1:-1;2559:23:19;;2408:180;-1:-1:-1;2408:180:19:o;2775:254::-;2843:6;2851;2904:2;2892:9;2883:7;2879:23;2875:32;2872:52;;;2920:1;2917;2910:12;2872:52;2956:9;2943:23;2933:33;;2985:38;3019:2;3008:9;3004:18;2985:38;:::i;:::-;2975:48;;2775:254;;;;;:::o;3034:258::-;3106:1;3116:113;3130:6;3127:1;3124:13;3116:113;;;3206:11;;;3200:18;3187:11;;;3180:39;3152:2;3145:10;3116:113;;;3247:6;3244:1;3241:13;3238:48;;;-1:-1:-1;;3282:1:19;3264:16;;3257:27;3034:258::o;3297:::-;3339:3;3377:5;3371:12;3404:6;3399:3;3392:19;3420:63;3476:6;3469:4;3464:3;3460:14;3453:4;3446:5;3442:16;3420:63;:::i;:::-;3537:2;3516:15;-1:-1:-1;;3512:29:19;3503:39;;;;3544:4;3499:50;;3297:258;-1:-1:-1;;3297:258:19:o;3560:220::-;3709:2;3698:9;3691:21;3672:4;3729:45;3770:2;3759:9;3755:18;3747:6;3729:45;:::i;3785:470::-;3872:6;3880;3888;3941:2;3929:9;3920:7;3916:23;3912:32;3909:52;;;3957:1;3954;3947:12;3909:52;3980:29;3999:9;3980:29;:::i;:::-;3970:39;;4060:2;4049:9;4045:18;4032:32;4087:18;4079:6;4076:30;4073:50;;;4119:1;4116;4109:12;4073:50;4142;4184:7;4175:6;4164:9;4160:22;4142:50;:::i;:::-;4132:60;;;4211:38;4245:2;4234:9;4230:18;4211:38;:::i;:::-;4201:48;;3785:470;;;;;:::o;4676:380::-;4755:1;4751:12;;;;4798;;;4819:61;;4873:4;4865:6;4861:17;4851:27;;4819:61;4926:2;4918:6;4915:14;4895:18;4892:38;4889:161;;4972:10;4967:3;4963:20;4960:1;4953:31;5007:4;5004:1;4997:15;5035:4;5032:1;5025:15;4889:161;;4676:380;;;:::o;5269:317::-;-1:-1:-1;;;;;5446:32:19;;5428:51;;5515:2;5510;5495:18;;5488:30;;;-1:-1:-1;;5535:45:19;;5561:18;;5553:6;5535:45;:::i;5591:786::-;6002:25;5997:3;5990:38;5972:3;6057:6;6051:13;6073:62;6128:6;6123:2;6118:3;6114:12;6107:4;6099:6;6095:17;6073:62;:::i;:::-;-1:-1:-1;;;6194:2:19;6154:16;;;6186:11;;;6179:40;6244:13;;6266:63;6244:13;6315:2;6307:11;;6300:4;6288:17;;6266:63;:::i;:::-;6349:17;6368:2;6345:26;;5591:786;-1:-1:-1;;;;5591:786:19:o;6382:127::-;6443:10;6438:3;6434:20;6431:1;6424:31;6474:4;6471:1;6464:15;6498:4;6495:1;6488:15;6514:168;6554:7;6620:1;6616;6612:6;6608:14;6605:1;6602:21;6597:1;6590:9;6583:17;6579:45;6576:71;;;6627:18;;:::i;:::-;-1:-1:-1;6667:9:19;;6514:168::o;6687:128::-;6727:3;6758:1;6754:6;6751:1;6748:13;6745:39;;;6764:18;;:::i;:::-;-1:-1:-1;6800:9:19;;6687:128::o;6820:127::-;6881:10;6876:3;6872:20;6869:1;6862:31;6912:4;6909:1;6902:15;6936:4;6933:1;6926:15;6952:136;6991:3;7019:5;7009:39;;7028:18;;:::i;:::-;-1:-1:-1;;;7064:18:19;;6952:136::o", + "linkReferences": {} }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "daoURI", - "type": "string" + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "MANAGER_ROLE()": "ec87621c", + "daoURI()": "7034731b", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "initialize(address,address,string,address)": "09c26fb1", + "initialize(address,string,address)": "7bb7c0d8", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "setURI(string)": "02fe5305", + "supportsInterface(bytes4)": "01ffc9a7" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"daoURI\",\"type\":\"string\"}],\"name\":\"DAOURIUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"daoURI_\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"daoURI_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_eip4824Index\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daoAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"daoURI_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_eip4824Index\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"daoURI_\",\"type\":\"string\"}],\"name\":\"setURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address,string,address)\":{\"details\":\"Throws if initialized already\",\"params\":{\"_daoAddress\":\"The primary address for a DAO\",\"_manager\":\"The address of the URI manager\",\"daoURI_\":\"The URI which will resolve to the governance docs\"}},\"initialize(address,string,address)\":{\"details\":\"Throws if initialized already\",\"params\":{\"_daoAddress\":\"The primary address for a DAO\",\"daoURI_\":\"The URI which will resolve to the governance docs\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setURI(string)\":{\"details\":\"Throws if not called by dao or manager\",\"params\":{\"daoURI_\":\"The URI which will resolve to the governance docs\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"EIP-4824: DAO Registration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"daoURI()\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the \\\"EIP-4824 DAO JSON-LD Schema\\\". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the \\\"EIP-4824 Members JSON-LD Schema\\\". The proposalsURI should point to a JSON file that conforms to the \\\"EIP-4824 Proposals JSON-LD Schema\\\". The activityLogURI should point to a JSON file that conforms to the \\\"EIP-4824 Activity Log JSON-LD Schema\\\". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated.\"},\"initialize(address,address,string,address)\":{\"notice\":\"Set the initial DAO URI and offer manager role to an address\"},\"initialize(address,string,address)\":{\"notice\":\"Set the initial DAO URI\"},\"setURI(string)\":{\"notice\":\"Update the URI for a DAO\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Registration.sol\":\"EIP4824Registration\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7\",\"dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44\",\"dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC\"]},\"src/Registration.sol\":{\"keccak256\":\"0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d\",\"dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.13+commit.abaa5c0e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "type": "error", + "name": "AlreadyInitialized" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "string", + "name": "daoURI", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "DAOURIUpdate", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32", + "indexed": true + } + ], + "type": "event", + "name": "RoleAdminChanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "RoleGranted", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "RoleRevoked", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "daoURI", + "outputs": [ + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "grantRole" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daoAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_manager", + "type": "address" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daoAddress", + "type": "address" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceRole" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "revokeRole" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setURI" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "initialize(address,address,string,address)": { + "details": "Throws if initialized already", + "params": { + "_daoAddress": "The primary address for a DAO", + "_manager": "The address of the URI manager", + "daoURI_": "The URI which will resolve to the governance docs" + } + }, + "initialize(address,string,address)": { + "details": "Throws if initialized already", + "params": { + "_daoAddress": "The primary address for a DAO", + "daoURI_": "The URI which will resolve to the governance docs" + } + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "setURI(string)": { + "details": "Throws if not called by dao or manager", + "params": { + "daoURI_": "The URI which will resolve to the governance docs" + } + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "version": 1 }, - { - "indexed": false, - "internalType": "address", - "name": "daoAddress", - "type": "address" + "userdoc": { + "kind": "user", + "methods": { + "daoURI()": { + "notice": "A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the \"EIP-4824 DAO JSON-LD Schema\". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the \"EIP-4824 Members JSON-LD Schema\". The proposalsURI should point to a JSON file that conforms to the \"EIP-4824 Proposals JSON-LD Schema\". The activityLogURI should point to a JSON file that conforms to the \"EIP-4824 Activity Log JSON-LD Schema\". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated." + }, + "initialize(address,address,string,address)": { + "notice": "Set the initial DAO URI and offer manager role to an address" + }, + "initialize(address,string,address)": { + "notice": "Set the initial DAO URI" + }, + "setURI(string)": { + "notice": "Update the URI for a DAO" + } + }, + "version": 1 } - ], - "name": "NewURI", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "metadata": { + "bytecodeHash": "ipfs" }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "compilationTarget": { + "src/Registration.sol": "EIP4824Registration" }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/access/AccessControl.sol": { + "keccak256": "0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a", + "urls": [ + "bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe", + "dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q" + ], + "license": "MIT" }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol": { + "keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57", + "urls": [ + "bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a", + "dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh" + ], + "license": "MIT" }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol": { + "keccak256": "0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a", + "urls": [ + "bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb", + "dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q" + ], + "license": "MIT" }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MANAGER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "daoURI", - "outputs": [ - { - "internalType": "string", - "name": "daoURI_", - "type": "string" + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol": { + "keccak256": "0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10", + "urls": [ + "bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7", + "dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", + "urls": [ + "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", + "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": { + "keccak256": "0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46", + "urls": [ + "bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b", + "dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8", + "urls": [ + "bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44", + "dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC" + ], + "license": "MIT" + }, + "src/Registration.sol": { + "keccak256": "0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47", + "urls": [ + "bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d", + "dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN" + ], + "license": "MIT" } - ], - "stateMutability": "view", - "type": "function" + }, + "version": 1 }, - { - "inputs": [ + "ast": { + "absolutePath": "src/Registration.sol", + "id": 23815, + "exportedSymbols": { + "AccessControl": [ + 21867 + ], + "AlreadyInitialized": [ + 23477 + ], + "ArrayLengthsMismatch": [ + 23638 + ], + "Clones": [ + 22023 + ], + "EIP4824Index": [ + 23469 + ], + "EIP4824InterfaceNotSupported": [ + 23403 + ], + "EIP4824Registration": [ + 23636 + ], + "EIP4824RegistrationSummoner": [ + 23814 + ], + "ERC165": [ + 22244 + ], + "ERC165Checker": [ + 22438 + ], + "IEIP4824": [ + 23401 + ], + "IERC165": [ + 22450 + ], + "NotCandidate": [ + 23475 + ], + "NotDao": [ + 23473 + ], + "NotDaoOrManager": [ + 23471 + ], + "OfferExpired": [ + 23479 + ] + }, + "nodeType": "SourceUnit", + "src": "32:10735:17", + "nodes": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ + "id": 23377, + "nodeType": "PragmaDirective", + "src": "32:23:17", + "literals": [ + "solidity", + "0.8", + ".13" + ] + }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "id": 23379, + "nodeType": "ImportDirective", + "src": "57:68:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/access/AccessControl.sol", + "file": "openzeppelin/access/AccessControl.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21868, + "symbolAliases": [ + { + "foreign": { + "id": 23378, + "name": "AccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21867, + "src": "65:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "id": 23381, + "nodeType": "ImportDirective", + "src": "126:60:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol", + "file": "openzeppelin/interfaces/IERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21944, + "symbolAliases": [ + { + "foreign": { + "id": 23380, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22450, + "src": "134:7:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "id": 23383, + "nodeType": "ImportDirective", + "src": "187:67:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol", + "file": "openzeppelin/utils/introspection/ERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22245, + "symbolAliases": [ + { + "foreign": { + "id": 23382, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22244, + "src": "195:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "id": 23385, + "nodeType": "ImportDirective", + "src": "255:81:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol", + "file": "openzeppelin/utils/introspection/ERC165Checker.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22439, + "symbolAliases": [ + { + "foreign": { + "id": 23384, + "name": "ERC165Checker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22438, + "src": "263:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ + "id": 23387, + "nodeType": "ImportDirective", + "src": "337:53:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "file": "openzeppelin/proxy/Clones.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22024, + "symbolAliases": [ + { + "foreign": { + "id": 23386, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "345:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "id": 23401, + "nodeType": "ContractDefinition", + "src": "472:848:17", + "nodes": [ + { + "id": 23394, + "nodeType": "EventDefinition", + "src": "497:54:17", + "anonymous": false, + "eventSelector": "70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd", + "name": "DAOURIUpdate", + "nameLocation": "503:12:17", + "parameters": { + "id": 23393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23390, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "524:10:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "516:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "516:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23392, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "543:6:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "536:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23391, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "515:35:17" + } + }, + { + "id": 23400, + "nodeType": "FunctionDefinition", + "src": "1254:64:17", + "documentation": { + "id": 23395, + "nodeType": "StructuredDocumentation", + "src": "557:692:17", + "text": "@notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the \"EIP-4824 DAO JSON-LD Schema\". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the \"EIP-4824 Members JSON-LD Schema\". The proposalsURI should point to a JSON file that conforms to the \"EIP-4824 Proposals JSON-LD Schema\". The activityLogURI should point to a JSON file that conforms to the \"EIP-4824 Activity Log JSON-LD Schema\". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated." + }, + "functionSelector": "7034731b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "1263:6:17", + "parameters": { + "id": 23396, + "nodeType": "ParameterList", + "parameters": [], + "src": "1269:2:17" + }, + "returnParameters": { + "id": 23399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23398, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "1309:7:17", + "nodeType": "VariableDeclaration", + "scope": 23400, + "src": "1295:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23397, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1295:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1294:23:17" + }, + "scope": 23401, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IEIP4824", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 23388, + "nodeType": "StructuredDocumentation", + "src": "392:80:17", + "text": "@title EIP-4824 DAOs\n @dev See " + }, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 23401 + ], + "name": "IEIP4824", + "nameLocation": "482:8:17", + "scope": 23815, + "usedErrors": [] + }, { - "internalType": "address", - "name": "_daoAddress", - "type": "address" + "id": 23403, + "nodeType": "ErrorDefinition", + "src": "1322:37:17", + "errorSelector": "e311fe09", + "name": "EIP4824InterfaceNotSupported", + "nameLocation": "1328:28:17", + "parameters": { + "id": 23402, + "nodeType": "ParameterList", + "parameters": [], + "src": "1356:2:17" + } }, { - "internalType": "address", - "name": "_manager", - "type": "address" + "id": 23469, + "nodeType": "ContractDefinition", + "src": "1361:735:17", + "nodes": [ + { + "id": 23408, + "nodeType": "UsingForDirective", + "src": "1406:32:17", + "global": false, + "libraryName": { + "id": 23406, + "name": "ERC165Checker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 22438, + "src": "1412:13:17" + }, + "typeName": { + "id": 23407, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1430:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 23413, + "nodeType": "VariableDeclaration", + "src": "1444:74:17", + "constant": true, + "functionSelector": "fc65b841", + "mutability": "constant", + "name": "REGISTRATION_ROLE", + "nameLocation": "1468:17:17", + "scope": 23469, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23409, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1444:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354524154494f4e5f524f4c45", + "id": 23411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1498:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + }, + "value": "REGISTRATION_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + } + ], + "id": 23410, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1488:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1488:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23417, + "nodeType": "EventDefinition", + "src": "1525:43:17", + "anonymous": false, + "eventSelector": "d7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e7710263", + "name": "DAOURIRegistered", + "nameLocation": "1531:16:17", + "parameters": { + "id": 23416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23415, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1556:10:17", + "nodeType": "VariableDeclaration", + "scope": 23417, + "src": "1548:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1547:20:17" + } + }, + { + "id": 23433, + "nodeType": "FunctionDefinition", + "src": "1574:124:17", + "body": { + "id": 23432, + "nodeType": "Block", + "src": "1588:110:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23421, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "1609:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1629:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1629:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23420, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1598:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1598:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23425, + "nodeType": "ExpressionStatement", + "src": "1598:42:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23427, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1661:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23428, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1680:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1680:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23426, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1650:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1650:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23431, + "nodeType": "ExpressionStatement", + "src": "1650:41:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23418, + "nodeType": "ParameterList", + "parameters": [], + "src": "1585:2:17" + }, + "returnParameters": { + "id": 23419, + "nodeType": "ParameterList", + "parameters": [], + "src": "1588:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23446, + "nodeType": "FunctionDefinition", + "src": "1704:158:17", + "body": { + "id": 23445, + "nodeType": "Block", + "src": "1812:50:17", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 23442, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23435, + "src": "1844:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23441, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "1827:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1827:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23444, + "nodeType": "EmitStatement", + "src": "1822:33:17" + } + ] + }, + "functionSelector": "0d67c955", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23438, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1793:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23439, + "kind": "modifierInvocation", + "modifierName": { + "id": 23437, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "1784:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "1784:27:17" + } + ], + "name": "logRegistrationPermissioned", + "nameLocation": "1713:27:17", + "parameters": { + "id": 23436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23435, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1758:10:17", + "nodeType": "VariableDeclaration", + "scope": 23446, + "src": "1750:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1750:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1740:34:17" + }, + "returnParameters": { + "id": 23440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1812:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23468, + "nodeType": "FunctionDefinition", + "src": "1868:226:17", + "body": { + "id": 23467, + "nodeType": "Block", + "src": "1922:172:17", + "statements": [ + { + "condition": { + "id": 23458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1936:57:17", + "subExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 23454, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "1971:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23453, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1966:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1966:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1966:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23451, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "1937:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 22294, + "src": "1937:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 23457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1937:56:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23462, + "nodeType": "IfStatement", + "src": "1932:112:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23459, + "name": "EIP4824InterfaceNotSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23403, + "src": "2014:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2014:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23461, + "nodeType": "RevertStatement", + "src": "2007:37:17" + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 23464, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "2076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23463, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "2059:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2059:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23466, + "nodeType": "EmitStatement", + "src": "2054:33:17" + } + ] + }, + "functionSelector": "ea5095b1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "logRegistration", + "nameLocation": "1877:15:17", + "parameters": { + "id": 23449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23448, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1901:10:17", + "nodeType": "VariableDeclaration", + "scope": 23468, + "src": "1893:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1893:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1892:20:17" + }, + "returnParameters": { + "id": 23450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1922:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23404, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "1386:13:17" + }, + "id": 23405, + "nodeType": "InheritanceSpecifier", + "src": "1386:13:17" + } + ], + "canonicalName": "EIP4824Index", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23469, + 21867, + 22244, + 22450, + 21940, + 22045 + ], + "name": "EIP4824Index", + "nameLocation": "1370:12:17", + "scope": 23815, + "usedErrors": [ + 23403 + ] }, { - "internalType": "string", - "name": "daoURI_", - "type": "string" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "id": 23471, + "nodeType": "ErrorDefinition", + "src": "2098:24:17", + "errorSelector": "6a2a0b81", + "name": "NotDaoOrManager", + "nameLocation": "2104:15:17", + "parameters": { + "id": 23470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2119:2:17" + } + }, { - "internalType": "address", - "name": "_daoAddress", - "type": "address" + "id": 23473, + "nodeType": "ErrorDefinition", + "src": "2123:15:17", + "errorSelector": "23f3e44a", + "name": "NotDao", + "nameLocation": "2129:6:17", + "parameters": { + "id": 23472, + "nodeType": "ParameterList", + "parameters": [], + "src": "2135:2:17" + } }, { - "internalType": "string", - "name": "daoURI_", - "type": "string" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "id": 23475, + "nodeType": "ErrorDefinition", + "src": "2139:21:17", + "errorSelector": "4f32a51b", + "name": "NotCandidate", + "nameLocation": "2145:12:17", + "parameters": { + "id": 23474, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:17" + } + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "id": 23477, + "nodeType": "ErrorDefinition", + "src": "2161:27:17", + "errorSelector": "0dc149f0", + "name": "AlreadyInitialized", + "nameLocation": "2167:18:17", + "parameters": { + "id": 23476, + "nodeType": "ParameterList", + "parameters": [], + "src": "2185:2:17" + } }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "id": 23479, + "nodeType": "ErrorDefinition", + "src": "2189:21:17", + "errorSelector": "9cb13087", + "name": "OfferExpired", + "nameLocation": "2195:12:17", + "parameters": { + "id": 23478, + "nodeType": "ParameterList", + "parameters": [], + "src": "2207:2:17" + } + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "id": 23636, + "nodeType": "ContractDefinition", + "src": "2250:2218:17", + "nodes": [ + { + "id": 23489, + "nodeType": "VariableDeclaration", + "src": "2312:64:17", + "constant": true, + "functionSelector": "ec87621c", + "mutability": "constant", + "name": "MANAGER_ROLE", + "nameLocation": "2336:12:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2312:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "4d414e414745525f524f4c45", + "id": 23487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2361:14:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + }, + "value": "MANAGER_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + } + ], + "id": 23486, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2351:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2351:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23491, + "nodeType": "VariableDeclaration", + "src": "2383:22:17", + "constant": false, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "2398:7:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 23490, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2383:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 23493, + "nodeType": "VariableDeclaration", + "src": "2412:18:17", + "constant": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "2420:10:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2412:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "id": 23504, + "nodeType": "FunctionDefinition", + "src": "2437:59:17", + "body": { + "id": 23503, + "nodeType": "Block", + "src": "2451:45:17", + "statements": [ + { + "expression": { + "id": 23501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23496, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "2461:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "307864656164", + "id": 23499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2482:6:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + }, + "value": "0xdead" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + } + ], + "id": 23498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2474:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:17", + "typeDescriptions": {} + } + }, + "id": 23500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2474:15:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2461:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23502, + "nodeType": "ExpressionStatement", + "src": "2461:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23494, + "nodeType": "ParameterList", + "parameters": [], + "src": "2448:2:17" + }, + "returnParameters": { + "id": 23495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2451:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23528, + "nodeType": "FunctionDefinition", + "src": "2807:260:17", + "body": { + "id": 23527, + "nodeType": "Block", + "src": "2959:108:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23517, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23507, + "src": "2980:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23518, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23511, + "src": "2993:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 23519, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23513, + "src": "3002:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23516, + "name": "initialize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23577, + "src": "2969:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2969:47:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23521, + "nodeType": "ExpressionStatement", + "src": "2969:47:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23523, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3037:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23524, + "name": "_manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23509, + "src": "3051:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23522, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3026:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23526, + "nodeType": "ExpressionStatement", + "src": "3026:34:17" + } + ] + }, + "documentation": { + "id": 23505, + "nodeType": "StructuredDocumentation", + "src": "2502:300:17", + "text": "@notice Set the initial DAO URI and offer manager role to an address\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param _manager The address of the URI manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "09c26fb1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2816:10:17", + "parameters": { + "id": 23514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23507, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "2844:11:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2836:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2836:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23509, + "mutability": "mutable", + "name": "_manager", + "nameLocation": "2873:8:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2865:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2865:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23511, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "2905:7:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2891:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23510, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2891:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23513, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "2930:13:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2922:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2922:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2826:123:17" + }, + "returnParameters": { + "id": 23515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2959:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23577, + "nodeType": "FunctionDefinition", + "src": "3286:428:17", + "body": { + "id": 23576, + "nodeType": "Block", + "src": "3410:304:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23538, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3424:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3446:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3438:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3438:7:17", + "typeDescriptions": {} + } + }, + "id": 23542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3438:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3424:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23547, + "nodeType": "IfStatement", + "src": "3420:57:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23544, + "name": "AlreadyInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23477, + "src": "3457:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3457:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23546, + "nodeType": "RevertStatement", + "src": "3450:27:17" + } + }, + { + "expression": { + "id": 23550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23548, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3487:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23549, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3500:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3487:24:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23551, + "nodeType": "ExpressionStatement", + "src": "3487:24:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23553, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23533, + "src": "3529:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23552, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3521:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3521:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23555, + "nodeType": "ExpressionStatement", + "src": "3521:16:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23557, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "3559:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23558, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3579:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23556, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3548:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3548:43:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23560, + "nodeType": "ExpressionStatement", + "src": "3548:43:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23562, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3612:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23563, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3626:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23561, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3601:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23565, + "nodeType": "ExpressionStatement", + "src": "3601:37:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 23572, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3701:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + ], + "id": 23571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3693:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3693:7:17", + "typeDescriptions": {} + } + }, + "id": 23573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3693:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23567, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23535, + "src": "3662:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23566, + "name": "EIP4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23469, + "src": "3649:12:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Index_$23469_$", + "typeString": "type(contract EIP4824Index)" + } + }, + "id": 23568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Index_$23469", + "typeString": "contract EIP4824Index" + } + }, + "id": 23569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "logRegistration", + "nodeType": "MemberAccess", + "referencedDeclaration": 23468, + "src": "3649:43:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 23574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:58:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23575, + "nodeType": "ExpressionStatement", + "src": "3649:58:17" + } + ] + }, + "documentation": { + "id": 23529, + "nodeType": "StructuredDocumentation", + "src": "3073:208:17", + "text": "@notice Set the initial DAO URI\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "7bb7c0d8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "3295:10:17", + "parameters": { + "id": 23536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23531, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "3323:11:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3315:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23533, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3358:7:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3344:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23532, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3344:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23535, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "3383:13:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3375:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3305:97:17" + }, + "returnParameters": { + "id": 23537, + "nodeType": "ParameterList", + "parameters": [], + "src": "3410:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23591, + "nodeType": "FunctionDefinition", + "src": "3886:102:17", + "body": { + "id": 23590, + "nodeType": "Block", + "src": "3955:33:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23587, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23580, + "src": "3973:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23586, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3965:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3965:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23589, + "nodeType": "ExpressionStatement", + "src": "3965:16:17" + } + ] + }, + "documentation": { + "id": 23578, + "nodeType": "StructuredDocumentation", + "src": "3720:161:17", + "text": "@notice Update the URI for a DAO\n @dev Throws if not called by dao or manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "02fe5305", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23583, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3941:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23584, + "kind": "modifierInvocation", + "modifierName": { + "id": 23582, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "3932:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "3932:22:17" + } + ], + "name": "setURI", + "nameLocation": "3895:6:17", + "parameters": { + "id": 23581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23580, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3916:7:17", + "nodeType": "VariableDeclaration", + "scope": 23591, + "src": "3902:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3902:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3901:23:17" + }, + "returnParameters": { + "id": 23585, + "nodeType": "ParameterList", + "parameters": [], + "src": "3955:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23606, + "nodeType": "FunctionDefinition", + "src": "3994:131:17", + "body": { + "id": 23605, + "nodeType": "Block", + "src": "4043:82:17", + "statements": [ + { + "expression": { + "id": 23598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23596, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4053:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23597, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4063:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "4053:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 23599, + "nodeType": "ExpressionStatement", + "src": "4053:17:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 23601, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "4098:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23602, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4110:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23600, + "name": "DAOURIUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23394, + "src": "4085:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 23603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4085:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23604, + "nodeType": "EmitStatement", + "src": "4080:38:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nameLocation": "4003:7:17", + "parameters": { + "id": 23594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23593, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4025:7:17", + "nodeType": "VariableDeclaration", + "scope": 23606, + "src": "4011:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23592, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4011:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4010:23:17" + }, + "returnParameters": { + "id": 23595, + "nodeType": "ParameterList", + "parameters": [], + "src": "4043:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23614, + "nodeType": "FunctionDefinition", + "src": "4131:95:17", + "body": { + "id": 23613, + "nodeType": "Block", + "src": "4195:31:17", + "statements": [ + { + "expression": { + "id": 23611, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4212:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 23610, + "id": 23612, + "nodeType": "Return", + "src": "4205:14:17" + } + ] + }, + "baseFunctions": [ + 23400 + ], + "functionSelector": "7034731b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "4140:6:17", + "parameters": { + "id": 23607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4146:2:17" + }, + "returnParameters": { + "id": 23610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23609, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4186:7:17", + "nodeType": "VariableDeclaration", + "scope": 23614, + "src": "4172:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23608, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4172:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4171:23:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23635, + "nodeType": "FunctionDefinition", + "src": "4232:234:17", + "body": { + "id": 23634, + "nodeType": "Block", + "src": "4337:129:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 23632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 23627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23622, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4366:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 23624, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "4386:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23623, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4381:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4381:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "4381:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "4366:41:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 23630, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4447:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23628, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "4423:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_EIP4824Registration_$23636_$", + "typeString": "type(contract super EIP4824Registration)" + } + }, + "id": 23629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 21612, + "src": "4423:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 23631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4366:93:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 23621, + "id": 23633, + "nodeType": "Return", + "src": "4347:112:17" + } + ] + }, + "baseFunctions": [ + 21612 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "4241:17:17", + "overrides": { + "id": 23618, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4313:8:17" + }, + "parameters": { + "id": 23617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23616, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "4275:11:17", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4268:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 23615, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4268:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "4258:34:17" + }, + "returnParameters": { + "id": 23621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23620, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4331:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23619, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4331:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4330:6:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23481, + "name": "IEIP4824", + "nodeType": "IdentifierPath", + "referencedDeclaration": 23401, + "src": "2282:8:17" + }, + "id": 23482, + "nodeType": "InheritanceSpecifier", + "src": "2282:8:17" + }, + { + "baseName": { + "id": 23483, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "2292:13:17" + }, + "id": 23484, + "nodeType": "InheritanceSpecifier", + "src": "2292:13:17" + } + ], + "canonicalName": "EIP4824Registration", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 23480, + "nodeType": "StructuredDocumentation", + "src": "2212:38:17", + "text": "@title EIP-4824: DAO Registration" + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23636, + 21867, + 22244, + 22450, + 21940, + 22045, + 23401 + ], + "name": "EIP4824Registration", + "nameLocation": "2259:19:17", + "scope": 23815, + "usedErrors": [ + 23477 + ] }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "id": 23638, + "nodeType": "ErrorDefinition", + "src": "4470:29:17", + "errorSelector": "3b800a46", + "name": "ArrayLengthsMismatch", + "nameLocation": "4476:20:17", + "parameters": { + "id": 23637, + "nodeType": "ParameterList", + "parameters": [], + "src": "4496:2:17" + } + }, { - "internalType": "string", - "name": "daoURI_", - "type": "string" + "id": 23814, + "nodeType": "ContractDefinition", + "src": "4501:6265:17", + "nodes": [ + { + "id": 23646, + "nodeType": "EventDefinition", + "src": "4544:117:17", + "anonymous": false, + "eventSelector": "e9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a4", + "name": "NewRegistration", + "nameLocation": "4550:15:17", + "parameters": { + "id": 23645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23640, + "indexed": true, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "4591:10:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4575:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4575:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23642, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "4618:6:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4611:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23641, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4611:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23644, + "indexed": false, + "mutability": "mutable", + "name": "registration", + "nameLocation": "4642:12:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4634:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4634:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4565:95:17" + } + }, + { + "id": 23648, + "nodeType": "VariableDeclaration", + "src": "4667:27:17", + "constant": false, + "functionSelector": "9481f966", + "mutability": "mutable", + "name": "eip4824Index", + "nameLocation": "4682:12:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4667:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23650, + "nodeType": "VariableDeclaration", + "src": "4700:23:17", + "constant": false, + "functionSelector": "6f2ddd93", + "mutability": "mutable", + "name": "template", + "nameLocation": "4715:8:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4700:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23666, + "nodeType": "FunctionDefinition", + "src": "4761:129:17", + "body": { + "id": 23665, + "nodeType": "Block", + "src": "4815:75:17", + "statements": [ + { + "expression": { + "id": 23659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23657, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "4825:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23658, + "name": "_template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23652, + "src": "4836:9:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4825:20:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23660, + "nodeType": "ExpressionStatement", + "src": "4825:20:17" + }, + { + "expression": { + "id": 23663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23661, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "4855:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23662, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23654, + "src": "4870:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4855:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23664, + "nodeType": "ExpressionStatement", + "src": "4855:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23652, + "mutability": "mutable", + "name": "_template", + "nameLocation": "4781:9:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4773:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4773:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23654, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "4800:13:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4792:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4792:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4772:42:17" + }, + "returnParameters": { + "id": 23656, + "nodeType": "ParameterList", + "parameters": [], + "src": "4815:0:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23701, + "nodeType": "FunctionDefinition", + "src": "4896:318:17", + "body": { + "id": 23700, + "nodeType": "Block", + "src": "5023:191:17", + "statements": [ + { + "expression": { + "id": 23690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23677, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5033:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23680, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5088:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 23682, + "name": "by", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23668, + "src": "5122:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23683, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23670, + "src": "5126:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23681, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5110:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5110:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 23687, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5153:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + ], + "id": 23686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5145:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:17", + "typeDescriptions": {} + } + }, + "id": 23688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5145:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 23678, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5040:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "predictDeterministicAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 22002, + "src": "5040:34:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes32,address) pure returns (address)" + } + }, + "id": 23689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5040:128:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5033:135:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23691, + "nodeType": "ExpressionStatement", + "src": "5033:135:17" + }, + { + "expression": { + "id": 23698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23692, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23675, + "src": "5178:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 23693, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5187:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5187:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 23695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5187:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 23696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5206:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5187:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5178:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23699, + "nodeType": "ExpressionStatement", + "src": "5178:29:17" + } + ] + }, + "functionSelector": "4e7984ed", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registrationAddress", + "nameLocation": "4905:19:17", + "parameters": { + "id": 23671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23668, + "mutability": "mutable", + "name": "by", + "nameLocation": "4942:2:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4934:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4934:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23670, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4962:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4954:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4954:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4924:48:17" + }, + "returnParameters": { + "id": 23676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23673, + "mutability": "mutable", + "name": "addr", + "nameLocation": "5004:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4996:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4996:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23675, + "mutability": "mutable", + "name": "exists", + "nameLocation": "5015:6:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "5010:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23674, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5010:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4995:27:17" + }, + "scope": 23814, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23778, + "nodeType": "FunctionDefinition", + "src": "5220:897:17", + "body": { + "id": 23777, + "nodeType": "Block", + "src": "5467:650:17", + "statements": [ + { + "expression": { + "id": 23731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23721, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5477:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23724, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5531:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 23726, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5565:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5565:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23728, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23703, + "src": "5577:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23725, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5553:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5553:29:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 23722, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5492:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "cloneDeterministic", + "nodeType": "MemberAccess", + "referencedDeclaration": 21988, + "src": "5492:25:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (address,bytes32) returns (address)" + } + }, + "id": 23730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5492:100:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5477:115:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23732, + "nodeType": "ExpressionStatement", + "src": "5477:115:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23733, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5607:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5626:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5618:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5618:7:17", + "typeDescriptions": {} + } + }, + "id": 23737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5618:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5607:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 23761, + "nodeType": "Block", + "src": "5802:191:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5878:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5878:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23756, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5906:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23757, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5931:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23758, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5956:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23751, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5836:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23750, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5816:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23528, + "src": "5816:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,address,string memory,address) external" + } + }, + "id": 23759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:166:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23760, + "nodeType": "ExpressionStatement", + "src": "5816:166:17" + } + ] + }, + "id": 23762, + "nodeType": "IfStatement", + "src": "5603:390:17", + "trueBody": { + "id": 23749, + "nodeType": "Block", + "src": "5630:166:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23743, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5706:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5706:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23745, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5734:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23746, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5759:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23740, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5664:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23739, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5644:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23577, + "src": "5644:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address) external" + } + }, + "id": 23747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:141:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23748, + "nodeType": "ExpressionStatement", + "src": "5644:141:17" + } + ] + } + }, + { + "expression": { + "id": 23768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23763, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23719, + "src": "6003:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23765, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23710, + "src": "6028:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 23766, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23713, + "src": "6039:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + ], + "id": 23764, + "name": "_callContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23802, + "src": "6013:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (address[] calldata,bytes calldata[] calldata) returns (bytes memory[] memory)" + } + }, + "id": 23767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6013:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "6003:41:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 23769, + "nodeType": "ExpressionStatement", + "src": "6003:41:17" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 23771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6076:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23773, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "6088:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23774, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "6097:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23770, + "name": "NewRegistration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23646, + "src": "6060:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6060:50:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23776, + "nodeType": "EmitStatement", + "src": "6055:55:17" + } + ] + }, + "functionSelector": "c3b7822f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "summonRegistration", + "nameLocation": "5229:18:17", + "parameters": { + "id": 23714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23703, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5265:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5257:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23702, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5257:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23705, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "5295:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5279:23:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23704, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5279:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23707, + "mutability": "mutable", + "name": "manager", + "nameLocation": "5320:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5312:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5312:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23710, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "5356:9:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5337:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5337:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23709, + "nodeType": "ArrayTypeName", + "src": "5337:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23713, + "mutability": "mutable", + "name": "data", + "nameLocation": "5392:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5375:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23711, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5375:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23712, + "nodeType": "ArrayTypeName", + "src": "5375:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5247:155:17" + }, + "returnParameters": { + "id": 23720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23716, + "mutability": "mutable", + "name": "registration", + "nameLocation": "5429:12:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5421:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5421:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23719, + "mutability": "mutable", + "name": "results", + "nameLocation": "5458:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5443:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23717, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5443:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23718, + "nodeType": "ArrayTypeName", + "src": "5443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5420:46:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23802, + "nodeType": "FunctionDefinition", + "src": "6590:3797:17", + "body": { + "id": 23801, + "nodeType": "Block", + "src": "6731:3656:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 23791, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23782, + "src": "6745:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 23792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6745:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 23793, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23785, + "src": "6765:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 23794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6765:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6745:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23799, + "nodeType": "IfStatement", + "src": "6741:66:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23796, + "name": "ArrayLengthsMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23638, + "src": "6785:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23798, + "nodeType": "RevertStatement", + "src": "6778:29:17" + } + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "6827:3554:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7026:22:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7043:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7037:5:17" + }, + "nodeType": "YulFunctionCall", + "src": "7037:11:17" + }, + "variableNames": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7026:7:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7134:7:17" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7143:11:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7127:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7127:28:17" + }, + "nodeType": "YulExpressionStatement", + "src": "7127:28:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7238:40:17", + "value": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7264:7:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7273:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7260:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7260:18:17" + }, + "variables": [ + { + "name": "resultsOffsets", + "nodeType": "YulTypedName", + "src": "7242:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7439:59:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7465:11:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7482:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7485:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7478:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7478:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7461:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7461:37:17" + }, + "variables": [ + { + "name": "dataOffsetsEnd", + "nodeType": "YulTypedName", + "src": "7443:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7653:49:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "7666:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7686:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7689:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7682:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7682:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7662:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7662:40:17" + }, + "variables": [ + { + "name": "m", + "nodeType": "YulTypedName", + "src": "7657:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7888:2369:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7961:42:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7974:11:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8000:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7987:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "7987:15:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7970:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7970:33:17" + }, + "variables": [ + { + "name": "o", + "nodeType": "YulTypedName", + "src": "7965:1:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "8123:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8186:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8189:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8182:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8182:12:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8284:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8271:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8271:15:17" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "8089:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8089:248:17" + }, + "nodeType": "YulExpressionStatement", + "src": "8089:248:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8632:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "contracts.offset", + "nodeType": "YulIdentifier", + "src": "8658:16:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8680:1:17" + }, + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "8683:11:17" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8676:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8676:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8654:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8654:42:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8641:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8641:56:17" + }, + "variables": [ + { + "name": "c", + "nodeType": "YulTypedName", + "src": "8636:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9281:200:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9383:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9389:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9395:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9395:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9368:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9368:44:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9368:44:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9440:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9446:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9446:16:17" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9433:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9433:30:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:30:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nodeType": "YulIdentifier", + "src": "8843:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8843:5:17" + }, + { + "name": "c", + "nodeType": "YulIdentifier", + "src": "8892:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8938:1:17", + "type": "", + "value": "0" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9000:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "9086:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9073:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "9073:15:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9147:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9207:4:17", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "call", + "nodeType": "YulIdentifier", + "src": "8813:4:17" + }, + "nodeType": "YulFunctionCall", + "src": "8813:449:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8785:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "8785:495:17" + }, + "nodeType": "YulIf", + "src": "8782:699:17" + }, + { + "expression": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9570:14:17" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9586:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9563:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9563:25:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9563:25:17" + }, + { + "nodeType": "YulAssignment", + "src": "9605:43:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9627:14:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9643:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9623:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9623:25:17" + }, + "variableNames": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9605:14:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9736:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9739:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9739:16:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9729:27:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:27:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9848:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9851:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9844:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9844:12:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9858:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9864:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9864:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9829:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9829:52:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9829:52:17" + }, + { + "nodeType": "YulAssignment", + "src": "10178:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10195:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "10198:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "10198:16:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10191:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10191:24:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10217:4:17", + "type": "", + "value": "0x3f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10187:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10187:35:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10224:18:17", + "type": "", + "value": "0xffffffffffffffe0" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10183:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10183:60:17" + }, + "variableNames": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10178:1:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7846:1:17" + }, + { + "name": "dataOffsetsEnd", + "nodeType": "YulIdentifier", + "src": "7849:14:17" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7843:2:17" + }, + "nodeType": "YulFunctionCall", + "src": "7843:21:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7836:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7836:29:17" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7866:21:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7868:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7877:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7880:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7873:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7873:12:17" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7868:1:17" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7811:24:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7813:20:17", + "value": { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7822:11:17" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7817:1:17", + "type": "" + } + ] + } + ] + }, + "src": "7807:2450:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10363:4:17", + "type": "", + "value": "0x40" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10369:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10356:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10356:15:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10356:15:17" + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23782, + "isOffset": true, + "isSlot": false, + "src": "8658:16:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7143:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7485:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7689:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7465:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7822:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7974:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "8683:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7026:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7134:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7264:7:17", + "valueSize": 1 + } + ], + "id": 23800, + "nodeType": "InlineAssembly", + "src": "6818:3563:17" + } + ] + }, + "documentation": { + "id": 23779, + "nodeType": "StructuredDocumentation", + "src": "6313:272:17", + "text": " @dev Call the `contracts` in order with `data`.\n @param contracts The addresses of the contracts.\n @param data The `abi.encodeWithSelector` calldata for each of the contracts.\n @return results The results of calling the contracts." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callContracts", + "nameLocation": "6599:14:17", + "parameters": { + "id": 23786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23782, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "6642:9:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6623:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6623:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23781, + "nodeType": "ArrayTypeName", + "src": "6623:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23785, + "mutability": "mutable", + "name": "data", + "nameLocation": "6678:4:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6661:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23783, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6661:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23784, + "nodeType": "ArrayTypeName", + "src": "6661:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6613:75:17" + }, + "returnParameters": { + "id": 23790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23789, + "mutability": "mutable", + "name": "results", + "nameLocation": "6722:7:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6707:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23787, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6707:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23788, + "nodeType": "ArrayTypeName", + "src": "6707:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6706:24:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23813, + "nodeType": "FunctionDefinition", + "src": "10393:371:17", + "body": { + "id": 23812, + "nodeType": "Block", + "src": "10501:263:17", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "10520:238:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10600:4:17", + "type": "", + "value": "0x00" + }, + { + "name": "by", + "nodeType": "YulIdentifier", + "src": "10606:2:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10593:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10593:16:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10593:16:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10629:4:17", + "type": "", + "value": "0x20" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "10635:4:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10622:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10622:18:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10622:18:17" + }, + { + "nodeType": "YulAssignment", + "src": "10717:31:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10737:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10743:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "10727:9:17" + }, + "nodeType": "YulFunctionCall", + "src": "10727:21:17" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "10717:6:17" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23804, + "isOffset": false, + "isSlot": false, + "src": "10606:2:17", + "valueSize": 1 + }, + { + "declaration": 23809, + "isOffset": false, + "isSlot": false, + "src": "10717:6:17", + "valueSize": 1 + }, + { + "declaration": 23806, + "isOffset": false, + "isSlot": false, + "src": "10635:4:17", + "valueSize": 1 + } + ], + "id": 23811, + "nodeType": "InlineAssembly", + "src": "10511:247:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_saltedSalt", + "nameLocation": "10402:11:17", + "parameters": { + "id": 23807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23804, + "mutability": "mutable", + "name": "by", + "nameLocation": "10431:2:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10423:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10423:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23806, + "mutability": "mutable", + "name": "salt", + "nameLocation": "10451:4:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10443:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23805, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10413:48:17" + }, + "returnParameters": { + "id": 23810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23809, + "mutability": "mutable", + "name": "result", + "nameLocation": "10493:6:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10485:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23808, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10485:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10484:16:17" + }, + "scope": 23814, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "EIP4824RegistrationSummoner", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23814 + ], + "name": "EIP4824RegistrationSummoner", + "nameLocation": "4510:27:17", + "scope": 23815, + "usedErrors": [ + 23638 + ] } ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "license": "MIT" }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] \ No newline at end of file + "id": 17 +} \ No newline at end of file diff --git a/Implementations/Subgraph/daostar/abis/EIP4824RegistrationSummoner.json b/Implementations/Subgraph/daostar/abis/EIP4824RegistrationSummoner.json index c2aaaeee..36d57da7 100644 --- a/Implementations/Subgraph/daostar/abis/EIP4824RegistrationSummoner.json +++ b/Implementations/Subgraph/daostar/abis/EIP4824RegistrationSummoner.json @@ -1,71 +1,6999 @@ -[ - { - "inputs": [ - { "internalType": "address", "name": "_template", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "constructor" +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_template", + "type": "address" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ArrayLengthsMismatch", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "daoAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "daoURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "registration", + "type": "address" + } + ], + "name": "NewRegistration", + "type": "event" + }, + { + "inputs": [], + "name": "eip4824Index", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "by", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "name": "registrationAddress", + "outputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "address[]", + "name": "contracts", + "type": "address[]" + }, + { + "internalType": "bytes[]", + "name": "data", + "type": "bytes[]" + } + ], + "name": "summonRegistration", + "outputs": [ + { + "internalType": "address", + "name": "registration", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "results", + "type": "bytes[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "template", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b5060405161083a38038061083a83398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b61077c806100be6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033", + "sourceMap": "4501:6265:17:-:0;;;4761:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4825:8;:20;;-1:-1:-1;;;;;4825:20:17;;;-1:-1:-1;;;;;;4825:20:17;;;;;;;:8;4855:28;;;;;;;;;;;4501:6265;;14:177:19;93:13;;-1:-1:-1;;;;;135:31:19;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;4501:6265:17;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e7984ed146100515780636f2ddd93146100885780639481f966146100b3578063c3b7822f146100c6575b600080fd5b61006461005f366004610479565b6100e7565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b60015461009b906001600160a01b031681565b6040516001600160a01b03909116815260200161007f565b60005461009b906001600160a01b031681565b6100d96100d43660046104ef565b610180565b60405161007f9291906105cf565b600154600090819061016a906001600160a01b0316610110868660009182526020526040902090565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b946001600160a01b0386163b1515945092505050565b6001546000906060906101af906001600160a01b03166101aa338d60009182526020526040902090565b610308565b91506001600160a01b03871661022e57600054604051630f76f81b60e31b81526001600160a01b0384811692637bb7c0d8926101f79233928f928f92909116906004016106a3565b600060405180830381600087803b15801561021157600080fd5b505af1158015610225573d6000803e3d6000fd5b505050506102a8565b816001600160a01b03166309c26fb133898c8c60008054906101000a90046001600160a01b03166040518663ffffffff1660e01b81526004016102759594939291906106da565b600060405180830381600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050505b6102b4868686866103af565b9050336001600160a01b03167fe9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a48a8a856040516102f39392919061071a565b60405180910390a29850989650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166103a95760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b60608382146103d157604051631dc0052360e11b815260040160405180910390fd5b6040519050818152602081018260051b84018360051b8201855b82811461044e578035870180356020820184378782038a01356000808335866000855af161041d573d6000803e3d6000fd5b50508184526020840193503d82523d6000602084013e3d91909101603f0167ffffffffffffffe016906020016103eb565b50604052509095945050505050565b80356001600160a01b038116811461047457600080fd5b919050565b6000806040838503121561048c57600080fd5b6104958361045d565b946020939093013593505050565b60008083601f8401126104b557600080fd5b50813567ffffffffffffffff8111156104cd57600080fd5b6020830191508360208260051b85010111156104e857600080fd5b9250929050565b60008060008060008060008060a0898b03121561050b57600080fd5b88359750602089013567ffffffffffffffff8082111561052a57600080fd5b818b0191508b601f83011261053e57600080fd5b81358181111561054d57600080fd5b8c602082850101111561055f57600080fd5b602083019950975061057360408c0161045d565b965060608b013591508082111561058957600080fd5b6105958c838d016104a3565b909650945060808b01359150808211156105ae57600080fd5b506105bb8b828c016104a3565b999c989b5096995094979396929594505050565b60006040820160018060a01b0385168352602060408185015281855180845260608601915060608160051b87010193508287016000805b8381101561066b57888703605f1901855282518051808952835b8181101561063b578281018901518a82018a01528801610620565b8181111561064b578489838c0101525b50601f01601f191697909701860196509385019391850191600101610606565b50949998505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060018060a01b038087168352606060208401526106c660608401868861067a565b915080841660408401525095945050505050565b600060018060a01b03808816835280871660208401526080604084015261070560808401868861067a565b91508084166060840152509695505050505050565b60408152600061072e60408301858761067a565b905060018060a01b038316602083015294935050505056fea26469706673582212200b26b3ca4dd3752a0fcfb3fad740df85aea64884b5ce01968dd18120311152eb64736f6c634300080d0033", + "sourceMap": "4501:6265:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4896:318;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;637:32:19;;;619:51;;713:14;;706:22;701:2;686:18;;679:50;592:18;4896:318:17;;;;;;;;4700:23;;;;;-1:-1:-1;;;;;4700:23:17;;;;;;-1:-1:-1;;;;;904:32:19;;;886:51;;874:2;859:18;4700:23:17;740:203:19;4667:27:17;;;;;-1:-1:-1;;;;;4667:27:17;;;5220:897;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;4896:318::-;5088:8;;4996:12;;;;5040:128;;-1:-1:-1;;;;;5088:8:17;5110:21;5122:2;5126:4;10485:14;10593:16;;;10629:4;10622:18;10743:4;10727:21;;;10393:371;5110:21;3269:4:9;3263:11;5153:4:17;3303::9;3294:14;;3287:32;3355:34;3348:4;3339:14;;3332:58;-1:-1:-1;3410:14:9;;3403:38;;;;3466:42;3454:55;;3538:4;3529:14;;3522:28;3612:4;3605;3596:14;;3586:31;3579:4;3570:14;;3563:55;3670:4;3663;3654:14;;;3644:31;;3011:680;5040:128:17;5033:135;-1:-1:-1;;;;;5187:16:17;;;:20;;;-1:-1:-1;4896:318:17;-1:-1:-1;;;4896:318:17:o;5220:897::-;5531:8;;5421:20;;5443:22;;5492:100;;-1:-1:-1;;;;;5531:8:17;5553:29;5565:10;5577:4;10485:14;10593:16;;;10629:4;10622:18;10743:4;10727:21;;;10393:371;5553:29;5492:25;:100::i;:::-;5477:115;-1:-1:-1;;;;;;5607:21:17;;5603:390;;5759:12;;5644:141;;-1:-1:-1;;;5644:141:17;;-1:-1:-1;;;;;5644:44:17;;;;;;:141;;5706:10;;5734:7;;;;5759:12;;;;5644:141;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:390;;;5836:12;-1:-1:-1;;;;;5816:44:17;;5878:10;5906:7;5931;;5956:12;;;;;;;;-1:-1:-1;;;;;5956:12:17;5816:166;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:390;6013:31;6028:9;;6039:4;;6013:14;:31::i;:::-;6003:41;;6076:10;-1:-1:-1;;;;;6060:50:17;;6088:7;;6097:12;6060:50;;;;;;;;:::i;:::-;;;;;;;;5220:897;;;;;;;;;;;:::o;2107:794:9:-;2191:16;2523:48;2505:14;2499:4;2495:25;2489:4;2485:36;2482:90;2476:4;2469:104;2730:32;2713:14;2707:4;2703:25;2700:63;2694:4;2687:77;2812:4;2806;2800;2797:1;2789:28;2777:40;-1:-1:-1;;;;;;2844:22:9;;2836:58;;;;-1:-1:-1;;;2836:58:9;;5875:2:19;2836:58:9;;;5857:21:19;5914:2;5894:18;;;5887:30;5953:25;5933:18;;;5926:53;5996:18;;2836:58:9;;;;;;;;2107:794;;;;:::o;6590:3797:17:-;6707:22;6745:31;;;6741:66;;6785:22;;-1:-1:-1;;;6785:22:17;;;;;;;;;;;6741:66;7043:4;7037:11;7026:22;;7143:11;7134:7;7127:28;7273:4;7264:7;7260:18;7485:11;7482:1;7478:19;7465:11;7461:37;7689:11;7686:1;7682:19;7666:14;7662:40;7822:11;7807:2450;7849:14;7846:1;7843:21;7807:2450;;8000:1;7987:15;7974:11;7970:33;8284:1;8271:15;8189:4;8186:1;8182:12;8123:1;8089:248;8683:11;8680:1;8676:19;8658:16;8654:42;8641:56;9207:4;9147;9086:1;9073:15;9000:1;8938;8892;8843:5;8813:449;8782:699;;9395:16;9389:4;9383;9368:44;9446:16;9440:4;9433:30;8782:699;;;9586:1;9570:14;9563:25;9643:4;9627:14;9623:25;9605:43;;9739:16;9736:1;9729:27;9864:16;9858:4;9851;9848:1;9844:12;9829:52;10198:16;10191:24;;;;10217:4;10187:35;10224:18;10183:60;;7880:4;7873:12;7807:2450;;;-1:-1:-1;10363:4:17;10356:15;-1:-1:-1;6590:3797:17;;;-1:-1:-1;;;;;6590:3797:17:o;14:173:19:-;82:20;;-1:-1:-1;;;;;131:31:19;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:19:o;948:367::-;1011:8;1021:6;1075:3;1068:4;1060:6;1056:17;1052:27;1042:55;;1093:1;1090;1083:12;1042:55;-1:-1:-1;1116:20:19;;1159:18;1148:30;;1145:50;;;1191:1;1188;1181:12;1145:50;1228:4;1220:6;1216:17;1204:29;;1288:3;1281:4;1271:6;1268:1;1264:14;1256:6;1252:27;1248:38;1245:47;1242:67;;;1305:1;1302;1295:12;1242:67;948:367;;;;;:::o;1320:1377::-;1492:6;1500;1508;1516;1524;1532;1540;1548;1601:3;1589:9;1580:7;1576:23;1572:33;1569:53;;;1618:1;1615;1608:12;1569:53;1654:9;1641:23;1631:33;;1715:2;1704:9;1700:18;1687:32;1738:18;1779:2;1771:6;1768:14;1765:34;;;1795:1;1792;1785:12;1765:34;1833:6;1822:9;1818:22;1808:32;;1878:7;1871:4;1867:2;1863:13;1859:27;1849:55;;1900:1;1897;1890:12;1849:55;1940:2;1927:16;1966:2;1958:6;1955:14;1952:34;;;1982:1;1979;1972:12;1952:34;2027:7;2022:2;2013:6;2009:2;2005:15;2001:24;1998:37;1995:57;;;2048:1;2045;2038:12;1995:57;2079:2;2071:11;;;-1:-1:-1;2101:6:19;-1:-1:-1;2126:38:19;2160:2;2145:18;;2126:38;:::i;:::-;2116:48;;2217:2;2206:9;2202:18;2189:32;2173:48;;2246:2;2236:8;2233:16;2230:36;;;2262:1;2259;2252:12;2230:36;2301:72;2365:7;2354:8;2343:9;2339:24;2301:72;:::i;:::-;2392:8;;-1:-1:-1;2275:98:19;-1:-1:-1;2480:3:19;2465:19;;2452:33;;-1:-1:-1;2497:16:19;;;2494:36;;;2526:1;2523;2516:12;2494:36;;2565:72;2629:7;2618:8;2607:9;2603:24;2565:72;:::i;:::-;1320:1377;;;;-1:-1:-1;1320:1377:19;;-1:-1:-1;1320:1377:19;;;;;;2656:8;-1:-1:-1;;;1320:1377:19:o;2702:1363::-;2890:4;2938:2;2927:9;2923:18;2997:1;2993;2988:3;2984:11;2980:19;2972:6;2968:32;2957:9;2950:51;3020:2;3058;3053;3042:9;3038:18;3031:30;3081:6;3116;3110:13;3147:6;3139;3132:22;3185:2;3174:9;3170:18;3163:25;;3247:2;3237:6;3234:1;3230:14;3219:9;3215:30;3211:39;3197:53;;3285:2;3277:6;3273:15;3306:1;3327;3337:699;3353:6;3348:3;3345:15;3337:699;;;3422:22;;;-1:-1:-1;;3418:36:19;3406:49;;3478:13;;3520:9;;3542:24;;;3590:1;3604:157;3620:8;3615:3;3612:17;3604:157;;;3728:12;;;3724:21;;3718:28;3695:16;;;3691:25;;3684:63;3639:12;;3604:157;;;3785:8;3780:3;3777:17;3774:106;;;3864:1;3859:2;3848:8;3840:6;3836:21;3832:30;3825:41;3774:106;-1:-1:-1;3946:2:19;3923:17;-1:-1:-1;;3919:31:19;3907:44;;;;3903:53;;;-1:-1:-1;4014:12:19;;;;3979:15;;;;3379:1;3370:11;3337:699;;;-1:-1:-1;4053:6:19;;2702:1363;-1:-1:-1;;;;;;;;;2702:1363:19:o;4070:267::-;4159:6;4154:3;4147:19;4211:6;4204:5;4197:4;4192:3;4188:14;4175:43;-1:-1:-1;4263:1:19;4238:16;;;4256:4;4234:27;;;4227:38;;;;4319:2;4298:15;;;-1:-1:-1;;4294:29:19;4285:39;;;4281:50;;4070:267::o;4342:445::-;4520:4;4566:1;4562;4557:3;4553:11;4549:19;4607:2;4599:6;4595:15;4584:9;4577:34;4647:2;4642;4631:9;4627:18;4620:30;4667:62;4725:2;4714:9;4710:18;4702:6;4694;4667:62;:::i;:::-;4659:70;;4777:2;4769:6;4765:15;4760:2;4749:9;4745:18;4738:43;;4342:445;;;;;;;:::o;4792:527::-;4998:4;5044:1;5040;5035:3;5031:11;5027:19;5085:2;5077:6;5073:15;5062:9;5055:34;5137:2;5129:6;5125:15;5120:2;5109:9;5105:18;5098:43;5177:3;5172:2;5161:9;5157:18;5150:31;5198:63;5256:3;5245:9;5241:19;5233:6;5225;5198:63;:::i;:::-;5190:71;;5309:2;5301:6;5297:15;5292:2;5281:9;5277:18;5270:43;;4792:527;;;;;;;;:::o;5324:344::-;5511:2;5500:9;5493:21;5474:4;5531:62;5589:2;5578:9;5574:18;5566:6;5558;5531:62;:::i;:::-;5523:70;;5658:1;5654;5649:3;5645:11;5641:19;5633:6;5629:32;5624:2;5613:9;5609:18;5602:60;5324:344;;;;;;:::o", + "linkReferences": {} }, - { "inputs": [], "name": "ArrayLengthsMismatch", "type": "error" }, - { - "anonymous": false, - "inputs": [ + "methodIdentifiers": { + "eip4824Index()": "9481f966", + "registrationAddress(address,bytes32)": "4e7984ed", + "summonRegistration(bytes32,string,address,address[],bytes[])": "c3b7822f", + "template()": "6f2ddd93" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_template\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_eip4824Index\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArrayLengthsMismatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"daoURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registration\",\"type\":\"address\"}],\"name\":\"NewRegistration\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip4824Index\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"registrationAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"daoURI_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"contracts\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"summonRegistration\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"registration\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"template\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Registration.sol\":\"EIP4824RegistrationSummoner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7\",\"dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44\",\"dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC\"]},\"src/Registration.sol\":{\"keccak256\":\"0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d\",\"dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.13+commit.abaa5c0e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_template", + "type": "address" + }, + { + "internalType": "address", + "name": "_eip4824Index", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "type": "error", + "name": "ArrayLengthsMismatch" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "daoAddress", + "type": "address", + "indexed": true + }, + { + "internalType": "string", + "name": "daoURI", + "type": "string", + "indexed": false + }, + { + "internalType": "address", + "name": "registration", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "NewRegistration", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "eip4824Index", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "by", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "registrationAddress", + "outputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "daoURI_", + "type": "string" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "address[]", + "name": "contracts", + "type": "address[]" + }, + { + "internalType": "bytes[]", + "name": "data", + "type": "bytes[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "summonRegistration", + "outputs": [ + { + "internalType": "address", + "name": "registration", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "results", + "type": "bytes[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "template", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/Registration.sol": "EIP4824RegistrationSummoner" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/access/AccessControl.sol": { + "keccak256": "0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a", + "urls": [ + "bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe", + "dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol": { + "keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57", + "urls": [ + "bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a", + "dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol": { + "keccak256": "0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a", + "urls": [ + "bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb", + "dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol": { + "keccak256": "0x888d64d221d52c31d015b76e50ca1af5ef8ff076550810b49cea6b01d8267a10", + "urls": [ + "bzz-raw://4da0f451fe5aefdb95204dbec4a9448a8a2b00a444864bb5dbf7162da842a0f7", + "dweb:/ipfs/QmYciAwNiJzgGMAqSTUANwMjy5HykNUvmkQ5PQhNTRqrB5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", + "urls": [ + "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", + "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": { + "keccak256": "0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46", + "urls": [ + "bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b", + "dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8", + "urls": [ + "bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44", + "dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC" + ], + "license": "MIT" + }, + "src/Registration.sol": { + "keccak256": "0x412fb13a7bafc953c0da71f9081b0ff7d6c91230e524f20b901ba80b0306bf47", + "urls": [ + "bzz-raw://2fac953c070d05e1cf6446236f11d0f56419fc6c3a17b1b720d2e546bf99bf1d", + "dweb:/ipfs/Qmdf8QqdpqHX6AyEoLweywsTuTgtF7htSsJn8N6W5VAstN" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/Registration.sol", + "id": 23815, + "exportedSymbols": { + "AccessControl": [ + 21867 + ], + "AlreadyInitialized": [ + 23477 + ], + "ArrayLengthsMismatch": [ + 23638 + ], + "Clones": [ + 22023 + ], + "EIP4824Index": [ + 23469 + ], + "EIP4824InterfaceNotSupported": [ + 23403 + ], + "EIP4824Registration": [ + 23636 + ], + "EIP4824RegistrationSummoner": [ + 23814 + ], + "ERC165": [ + 22244 + ], + "ERC165Checker": [ + 22438 + ], + "IEIP4824": [ + 23401 + ], + "IERC165": [ + 22450 + ], + "NotCandidate": [ + 23475 + ], + "NotDao": [ + 23473 + ], + "NotDaoOrManager": [ + 23471 + ], + "OfferExpired": [ + 23479 + ] + }, + "nodeType": "SourceUnit", + "src": "32:10735:17", + "nodes": [ + { + "id": 23377, + "nodeType": "PragmaDirective", + "src": "32:23:17", + "literals": [ + "solidity", + "0.8", + ".13" + ] + }, + { + "id": 23379, + "nodeType": "ImportDirective", + "src": "57:68:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/access/AccessControl.sol", + "file": "openzeppelin/access/AccessControl.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21868, + "symbolAliases": [ + { + "foreign": { + "id": 23378, + "name": "AccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21867, + "src": "65:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23381, + "nodeType": "ImportDirective", + "src": "126:60:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol", + "file": "openzeppelin/interfaces/IERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 21944, + "symbolAliases": [ + { + "foreign": { + "id": 23380, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22450, + "src": "134:7:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23383, + "nodeType": "ImportDirective", + "src": "187:67:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol", + "file": "openzeppelin/utils/introspection/ERC165.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22245, + "symbolAliases": [ + { + "foreign": { + "id": 23382, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22244, + "src": "195:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23385, + "nodeType": "ImportDirective", + "src": "255:81:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol", + "file": "openzeppelin/utils/introspection/ERC165Checker.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22439, + "symbolAliases": [ + { + "foreign": { + "id": 23384, + "name": "ERC165Checker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22438, + "src": "263:13:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23387, + "nodeType": "ImportDirective", + "src": "337:53:17", + "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "file": "openzeppelin/proxy/Clones.sol", + "nameLocation": "-1:-1:-1", + "scope": 23815, + "sourceUnit": 22024, + "symbolAliases": [ + { + "foreign": { + "id": 23386, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "345:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 23401, + "nodeType": "ContractDefinition", + "src": "472:848:17", + "nodes": [ + { + "id": 23394, + "nodeType": "EventDefinition", + "src": "497:54:17", + "anonymous": false, + "eventSelector": "70a842976e7a4dbe172ab201a1d23ff7f220e6edea7c32dc4e15b9210fef09dd", + "name": "DAOURIUpdate", + "nameLocation": "503:12:17", + "parameters": { + "id": 23393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23390, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "524:10:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "516:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "516:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23392, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "543:6:17", + "nodeType": "VariableDeclaration", + "scope": 23394, + "src": "536:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23391, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "515:35:17" + } + }, + { + "id": 23400, + "nodeType": "FunctionDefinition", + "src": "1254:64:17", + "documentation": { + "id": 23395, + "nodeType": "StructuredDocumentation", + "src": "557:692:17", + "text": "@notice A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the \"EIP-4824 DAO JSON-LD Schema\". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the \"EIP-4824 Members JSON-LD Schema\". The proposalsURI should point to a JSON file that conforms to the \"EIP-4824 Proposals JSON-LD Schema\". The activityLogURI should point to a JSON file that conforms to the \"EIP-4824 Activity Log JSON-LD Schema\". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically-hosted or dynamically-generated." + }, + "functionSelector": "7034731b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "1263:6:17", + "parameters": { + "id": 23396, + "nodeType": "ParameterList", + "parameters": [], + "src": "1269:2:17" + }, + "returnParameters": { + "id": 23399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23398, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "1309:7:17", + "nodeType": "VariableDeclaration", + "scope": 23400, + "src": "1295:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23397, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1295:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1294:23:17" + }, + "scope": 23401, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IEIP4824", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 23388, + "nodeType": "StructuredDocumentation", + "src": "392:80:17", + "text": "@title EIP-4824 DAOs\n @dev See " + }, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 23401 + ], + "name": "IEIP4824", + "nameLocation": "482:8:17", + "scope": 23815, + "usedErrors": [] + }, { - "indexed": true, - "internalType": "address", - "name": "daoAddress", - "type": "address" + "id": 23403, + "nodeType": "ErrorDefinition", + "src": "1322:37:17", + "errorSelector": "e311fe09", + "name": "EIP4824InterfaceNotSupported", + "nameLocation": "1328:28:17", + "parameters": { + "id": 23402, + "nodeType": "ParameterList", + "parameters": [], + "src": "1356:2:17" + } }, { - "indexed": false, - "internalType": "string", - "name": "daoURI", - "type": "string" + "id": 23469, + "nodeType": "ContractDefinition", + "src": "1361:735:17", + "nodes": [ + { + "id": 23408, + "nodeType": "UsingForDirective", + "src": "1406:32:17", + "global": false, + "libraryName": { + "id": 23406, + "name": "ERC165Checker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 22438, + "src": "1412:13:17" + }, + "typeName": { + "id": 23407, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1430:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 23413, + "nodeType": "VariableDeclaration", + "src": "1444:74:17", + "constant": true, + "functionSelector": "fc65b841", + "mutability": "constant", + "name": "REGISTRATION_ROLE", + "nameLocation": "1468:17:17", + "scope": 23469, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23409, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1444:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354524154494f4e5f524f4c45", + "id": 23411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1498:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + }, + "value": "REGISTRATION_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e724a73ea485d92e6c914362ee04128d32f0adde3c608c37c81659f2271f4278", + "typeString": "literal_string \"REGISTRATION_ROLE\"" + } + ], + "id": 23410, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1488:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1488:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23417, + "nodeType": "EventDefinition", + "src": "1525:43:17", + "anonymous": false, + "eventSelector": "d7d9bc81077ae0982e04bde77b33aec8bdcda8102184b537945fe780e7710263", + "name": "DAOURIRegistered", + "nameLocation": "1531:16:17", + "parameters": { + "id": 23416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23415, + "indexed": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1556:10:17", + "nodeType": "VariableDeclaration", + "scope": 23417, + "src": "1548:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1547:20:17" + } + }, + { + "id": 23433, + "nodeType": "FunctionDefinition", + "src": "1574:124:17", + "body": { + "id": 23432, + "nodeType": "Block", + "src": "1588:110:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23421, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "1609:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1629:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1629:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23420, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1598:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1598:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23425, + "nodeType": "ExpressionStatement", + "src": "1598:42:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23427, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1661:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 23428, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1680:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1680:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23426, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "1650:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1650:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23431, + "nodeType": "ExpressionStatement", + "src": "1650:41:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23418, + "nodeType": "ParameterList", + "parameters": [], + "src": "1585:2:17" + }, + "returnParameters": { + "id": 23419, + "nodeType": "ParameterList", + "parameters": [], + "src": "1588:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23446, + "nodeType": "FunctionDefinition", + "src": "1704:158:17", + "body": { + "id": 23445, + "nodeType": "Block", + "src": "1812:50:17", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 23442, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23435, + "src": "1844:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23441, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "1827:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1827:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23444, + "nodeType": "EmitStatement", + "src": "1822:33:17" + } + ] + }, + "functionSelector": "0d67c955", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23438, + "name": "REGISTRATION_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23413, + "src": "1793:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23439, + "kind": "modifierInvocation", + "modifierName": { + "id": 23437, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "1784:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "1784:27:17" + } + ], + "name": "logRegistrationPermissioned", + "nameLocation": "1713:27:17", + "parameters": { + "id": 23436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23435, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1758:10:17", + "nodeType": "VariableDeclaration", + "scope": 23446, + "src": "1750:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1750:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1740:34:17" + }, + "returnParameters": { + "id": 23440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1812:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23468, + "nodeType": "FunctionDefinition", + "src": "1868:226:17", + "body": { + "id": 23467, + "nodeType": "Block", + "src": "1922:172:17", + "statements": [ + { + "condition": { + "id": 23458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1936:57:17", + "subExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 23454, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "1971:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23453, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1966:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1966:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1966:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23451, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "1937:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 22294, + "src": "1937:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 23457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1937:56:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23462, + "nodeType": "IfStatement", + "src": "1932:112:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23459, + "name": "EIP4824InterfaceNotSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23403, + "src": "2014:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2014:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23461, + "nodeType": "RevertStatement", + "src": "2007:37:17" + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 23464, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23448, + "src": "2076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23463, + "name": "DAOURIRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23417, + "src": "2059:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 23465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2059:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23466, + "nodeType": "EmitStatement", + "src": "2054:33:17" + } + ] + }, + "functionSelector": "ea5095b1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "logRegistration", + "nameLocation": "1877:15:17", + "parameters": { + "id": 23449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23448, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "1901:10:17", + "nodeType": "VariableDeclaration", + "scope": 23468, + "src": "1893:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1893:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1892:20:17" + }, + "returnParameters": { + "id": 23450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1922:0:17" + }, + "scope": 23469, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23404, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "1386:13:17" + }, + "id": 23405, + "nodeType": "InheritanceSpecifier", + "src": "1386:13:17" + } + ], + "canonicalName": "EIP4824Index", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23469, + 21867, + 22244, + 22450, + 21940, + 22045 + ], + "name": "EIP4824Index", + "nameLocation": "1370:12:17", + "scope": 23815, + "usedErrors": [ + 23403 + ] }, { - "indexed": false, - "internalType": "address", - "name": "registration", - "type": "address" + "id": 23471, + "nodeType": "ErrorDefinition", + "src": "2098:24:17", + "errorSelector": "6a2a0b81", + "name": "NotDaoOrManager", + "nameLocation": "2104:15:17", + "parameters": { + "id": 23470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2119:2:17" + } + }, + { + "id": 23473, + "nodeType": "ErrorDefinition", + "src": "2123:15:17", + "errorSelector": "23f3e44a", + "name": "NotDao", + "nameLocation": "2129:6:17", + "parameters": { + "id": 23472, + "nodeType": "ParameterList", + "parameters": [], + "src": "2135:2:17" + } + }, + { + "id": 23475, + "nodeType": "ErrorDefinition", + "src": "2139:21:17", + "errorSelector": "4f32a51b", + "name": "NotCandidate", + "nameLocation": "2145:12:17", + "parameters": { + "id": 23474, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:17" + } + }, + { + "id": 23477, + "nodeType": "ErrorDefinition", + "src": "2161:27:17", + "errorSelector": "0dc149f0", + "name": "AlreadyInitialized", + "nameLocation": "2167:18:17", + "parameters": { + "id": 23476, + "nodeType": "ParameterList", + "parameters": [], + "src": "2185:2:17" + } + }, + { + "id": 23479, + "nodeType": "ErrorDefinition", + "src": "2189:21:17", + "errorSelector": "9cb13087", + "name": "OfferExpired", + "nameLocation": "2195:12:17", + "parameters": { + "id": 23478, + "nodeType": "ParameterList", + "parameters": [], + "src": "2207:2:17" + } + }, + { + "id": 23636, + "nodeType": "ContractDefinition", + "src": "2250:2218:17", + "nodes": [ + { + "id": 23489, + "nodeType": "VariableDeclaration", + "src": "2312:64:17", + "constant": true, + "functionSelector": "ec87621c", + "mutability": "constant", + "name": "MANAGER_ROLE", + "nameLocation": "2336:12:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2312:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "4d414e414745525f524f4c45", + "id": 23487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2361:14:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + }, + "value": "MANAGER_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08", + "typeString": "literal_string \"MANAGER_ROLE\"" + } + ], + "id": 23486, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2351:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 23488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2351:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "id": 23491, + "nodeType": "VariableDeclaration", + "src": "2383:22:17", + "constant": false, + "mutability": "mutable", + "name": "_daoURI", + "nameLocation": "2398:7:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 23490, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2383:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 23493, + "nodeType": "VariableDeclaration", + "src": "2412:18:17", + "constant": false, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "2420:10:17", + "scope": 23636, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2412:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "id": 23504, + "nodeType": "FunctionDefinition", + "src": "2437:59:17", + "body": { + "id": 23503, + "nodeType": "Block", + "src": "2451:45:17", + "statements": [ + { + "expression": { + "id": 23501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23496, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "2461:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "307864656164", + "id": 23499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2482:6:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + }, + "value": "0xdead" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_57005_by_1", + "typeString": "int_const 57005" + } + ], + "id": 23498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2474:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:17", + "typeDescriptions": {} + } + }, + "id": 23500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2474:15:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2461:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23502, + "nodeType": "ExpressionStatement", + "src": "2461:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23494, + "nodeType": "ParameterList", + "parameters": [], + "src": "2448:2:17" + }, + "returnParameters": { + "id": 23495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2451:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23528, + "nodeType": "FunctionDefinition", + "src": "2807:260:17", + "body": { + "id": 23527, + "nodeType": "Block", + "src": "2959:108:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23517, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23507, + "src": "2980:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23518, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23511, + "src": "2993:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 23519, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23513, + "src": "3002:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23516, + "name": "initialize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23577, + "src": "2969:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2969:47:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23521, + "nodeType": "ExpressionStatement", + "src": "2969:47:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23523, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3037:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23524, + "name": "_manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23509, + "src": "3051:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23522, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3026:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23526, + "nodeType": "ExpressionStatement", + "src": "3026:34:17" + } + ] + }, + "documentation": { + "id": 23505, + "nodeType": "StructuredDocumentation", + "src": "2502:300:17", + "text": "@notice Set the initial DAO URI and offer manager role to an address\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param _manager The address of the URI manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "09c26fb1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2816:10:17", + "parameters": { + "id": 23514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23507, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "2844:11:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2836:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2836:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23509, + "mutability": "mutable", + "name": "_manager", + "nameLocation": "2873:8:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2865:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2865:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23511, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "2905:7:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2891:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23510, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2891:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23513, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "2930:13:17", + "nodeType": "VariableDeclaration", + "scope": 23528, + "src": "2922:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2922:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2826:123:17" + }, + "returnParameters": { + "id": 23515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2959:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23577, + "nodeType": "FunctionDefinition", + "src": "3286:428:17", + "body": { + "id": 23576, + "nodeType": "Block", + "src": "3410:304:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23538, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3424:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3446:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3438:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3438:7:17", + "typeDescriptions": {} + } + }, + "id": 23542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3438:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3424:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23547, + "nodeType": "IfStatement", + "src": "3420:57:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23544, + "name": "AlreadyInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23477, + "src": "3457:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3457:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23546, + "nodeType": "RevertStatement", + "src": "3450:27:17" + } + }, + { + "expression": { + "id": 23550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23548, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "3487:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23549, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3500:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3487:24:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23551, + "nodeType": "ExpressionStatement", + "src": "3487:24:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23553, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23533, + "src": "3529:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23552, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3521:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3521:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23555, + "nodeType": "ExpressionStatement", + "src": "3521:16:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23557, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21579, + "src": "3559:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23558, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3579:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23556, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3548:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3548:43:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23560, + "nodeType": "ExpressionStatement", + "src": "3548:43:17" + }, + { + "expression": { + "arguments": [ + { + "id": 23562, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3612:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 23563, + "name": "_daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23531, + "src": "3626:11:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23561, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21835, + "src": "3601:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 23564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23565, + "nodeType": "ExpressionStatement", + "src": "3601:37:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 23572, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3701:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + ], + "id": 23571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3693:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3693:7:17", + "typeDescriptions": {} + } + }, + "id": 23573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3693:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23567, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23535, + "src": "3662:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23566, + "name": "EIP4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23469, + "src": "3649:12:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Index_$23469_$", + "typeString": "type(contract EIP4824Index)" + } + }, + "id": 23568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Index_$23469", + "typeString": "contract EIP4824Index" + } + }, + "id": 23569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "logRegistration", + "nodeType": "MemberAccess", + "referencedDeclaration": 23468, + "src": "3649:43:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 23574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:58:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23575, + "nodeType": "ExpressionStatement", + "src": "3649:58:17" + } + ] + }, + "documentation": { + "id": 23529, + "nodeType": "StructuredDocumentation", + "src": "3073:208:17", + "text": "@notice Set the initial DAO URI\n @dev Throws if initialized already\n @param _daoAddress The primary address for a DAO\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "7bb7c0d8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "3295:10:17", + "parameters": { + "id": 23536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23531, + "mutability": "mutable", + "name": "_daoAddress", + "nameLocation": "3323:11:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3315:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23533, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3358:7:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3344:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23532, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3344:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23535, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "3383:13:17", + "nodeType": "VariableDeclaration", + "scope": 23577, + "src": "3375:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3305:97:17" + }, + "returnParameters": { + "id": 23537, + "nodeType": "ParameterList", + "parameters": [], + "src": "3410:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23591, + "nodeType": "FunctionDefinition", + "src": "3886:102:17", + "body": { + "id": 23590, + "nodeType": "Block", + "src": "3955:33:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 23587, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23580, + "src": "3973:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23586, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23606, + "src": "3965:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 23588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3965:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23589, + "nodeType": "ExpressionStatement", + "src": "3965:16:17" + } + ] + }, + "documentation": { + "id": 23578, + "nodeType": "StructuredDocumentation", + "src": "3720:161:17", + "text": "@notice Update the URI for a DAO\n @dev Throws if not called by dao or manager\n @param daoURI_ The URI which will resolve to the governance docs" + }, + "functionSelector": "02fe5305", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 23583, + "name": "MANAGER_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23489, + "src": "3941:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 23584, + "kind": "modifierInvocation", + "modifierName": { + "id": 23582, + "name": "onlyRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21590, + "src": "3932:8:17" + }, + "nodeType": "ModifierInvocation", + "src": "3932:22:17" + } + ], + "name": "setURI", + "nameLocation": "3895:6:17", + "parameters": { + "id": 23581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23580, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "3916:7:17", + "nodeType": "VariableDeclaration", + "scope": 23591, + "src": "3902:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3902:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3901:23:17" + }, + "returnParameters": { + "id": 23585, + "nodeType": "ParameterList", + "parameters": [], + "src": "3955:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23606, + "nodeType": "FunctionDefinition", + "src": "3994:131:17", + "body": { + "id": 23605, + "nodeType": "Block", + "src": "4043:82:17", + "statements": [ + { + "expression": { + "id": 23598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23596, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4053:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23597, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4063:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "4053:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 23599, + "nodeType": "ExpressionStatement", + "src": "4053:17:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 23601, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23493, + "src": "4098:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23602, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23593, + "src": "4110:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 23600, + "name": "DAOURIUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23394, + "src": "4085:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 23603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4085:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23604, + "nodeType": "EmitStatement", + "src": "4080:38:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nameLocation": "4003:7:17", + "parameters": { + "id": 23594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23593, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4025:7:17", + "nodeType": "VariableDeclaration", + "scope": 23606, + "src": "4011:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23592, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4011:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4010:23:17" + }, + "returnParameters": { + "id": 23595, + "nodeType": "ParameterList", + "parameters": [], + "src": "4043:0:17" + }, + "scope": 23636, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23614, + "nodeType": "FunctionDefinition", + "src": "4131:95:17", + "body": { + "id": 23613, + "nodeType": "Block", + "src": "4195:31:17", + "statements": [ + { + "expression": { + "id": 23611, + "name": "_daoURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23491, + "src": "4212:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 23610, + "id": 23612, + "nodeType": "Return", + "src": "4205:14:17" + } + ] + }, + "baseFunctions": [ + 23400 + ], + "functionSelector": "7034731b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "daoURI", + "nameLocation": "4140:6:17", + "parameters": { + "id": 23607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4146:2:17" + }, + "returnParameters": { + "id": 23610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23609, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "4186:7:17", + "nodeType": "VariableDeclaration", + "scope": 23614, + "src": "4172:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23608, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4172:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4171:23:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23635, + "nodeType": "FunctionDefinition", + "src": "4232:234:17", + "body": { + "id": 23634, + "nodeType": "Block", + "src": "4337:129:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 23632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 23627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23622, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4366:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 23624, + "name": "IEIP4824", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23401, + "src": "4386:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IEIP4824_$23401_$", + "typeString": "type(contract IEIP4824)" + } + ], + "id": 23623, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4381:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4381:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IEIP4824_$23401", + "typeString": "type(contract IEIP4824)" + } + }, + "id": 23626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "4381:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "4366:41:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 23630, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23616, + "src": "4447:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 23628, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "4423:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_EIP4824Registration_$23636_$", + "typeString": "type(contract super EIP4824Registration)" + } + }, + "id": 23629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 21612, + "src": "4423:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 23631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4366:93:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 23621, + "id": 23633, + "nodeType": "Return", + "src": "4347:112:17" + } + ] + }, + "baseFunctions": [ + 21612 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "4241:17:17", + "overrides": { + "id": 23618, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4313:8:17" + }, + "parameters": { + "id": 23617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23616, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "4275:11:17", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4268:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 23615, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4268:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "4258:34:17" + }, + "returnParameters": { + "id": 23621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23620, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 23635, + "src": "4331:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23619, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4331:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4330:6:17" + }, + "scope": 23636, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 23481, + "name": "IEIP4824", + "nodeType": "IdentifierPath", + "referencedDeclaration": 23401, + "src": "2282:8:17" + }, + "id": 23482, + "nodeType": "InheritanceSpecifier", + "src": "2282:8:17" + }, + { + "baseName": { + "id": 23483, + "name": "AccessControl", + "nodeType": "IdentifierPath", + "referencedDeclaration": 21867, + "src": "2292:13:17" + }, + "id": 23484, + "nodeType": "InheritanceSpecifier", + "src": "2292:13:17" + } + ], + "canonicalName": "EIP4824Registration", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 23480, + "nodeType": "StructuredDocumentation", + "src": "2212:38:17", + "text": "@title EIP-4824: DAO Registration" + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23636, + 21867, + 22244, + 22450, + 21940, + 22045, + 23401 + ], + "name": "EIP4824Registration", + "nameLocation": "2259:19:17", + "scope": 23815, + "usedErrors": [ + 23477 + ] + }, + { + "id": 23638, + "nodeType": "ErrorDefinition", + "src": "4470:29:17", + "errorSelector": "3b800a46", + "name": "ArrayLengthsMismatch", + "nameLocation": "4476:20:17", + "parameters": { + "id": 23637, + "nodeType": "ParameterList", + "parameters": [], + "src": "4496:2:17" + } + }, + { + "id": 23814, + "nodeType": "ContractDefinition", + "src": "4501:6265:17", + "nodes": [ + { + "id": 23646, + "nodeType": "EventDefinition", + "src": "4544:117:17", + "anonymous": false, + "eventSelector": "e9e32efd3c9d53b50595bf3de6868c9f83b11066cfae28d57f83b8075e9894a4", + "name": "NewRegistration", + "nameLocation": "4550:15:17", + "parameters": { + "id": 23645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23640, + "indexed": true, + "mutability": "mutable", + "name": "daoAddress", + "nameLocation": "4591:10:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4575:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4575:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23642, + "indexed": false, + "mutability": "mutable", + "name": "daoURI", + "nameLocation": "4618:6:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4611:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23641, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4611:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23644, + "indexed": false, + "mutability": "mutable", + "name": "registration", + "nameLocation": "4642:12:17", + "nodeType": "VariableDeclaration", + "scope": 23646, + "src": "4634:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4634:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4565:95:17" + } + }, + { + "id": 23648, + "nodeType": "VariableDeclaration", + "src": "4667:27:17", + "constant": false, + "functionSelector": "9481f966", + "mutability": "mutable", + "name": "eip4824Index", + "nameLocation": "4682:12:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4667:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23650, + "nodeType": "VariableDeclaration", + "src": "4700:23:17", + "constant": false, + "functionSelector": "6f2ddd93", + "mutability": "mutable", + "name": "template", + "nameLocation": "4715:8:17", + "scope": 23814, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4700:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 23666, + "nodeType": "FunctionDefinition", + "src": "4761:129:17", + "body": { + "id": 23665, + "nodeType": "Block", + "src": "4815:75:17", + "statements": [ + { + "expression": { + "id": 23659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23657, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "4825:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23658, + "name": "_template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23652, + "src": "4836:9:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4825:20:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23660, + "nodeType": "ExpressionStatement", + "src": "4825:20:17" + }, + { + "expression": { + "id": 23663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23661, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "4855:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 23662, + "name": "_eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23654, + "src": "4870:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4855:28:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23664, + "nodeType": "ExpressionStatement", + "src": "4855:28:17" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 23655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23652, + "mutability": "mutable", + "name": "_template", + "nameLocation": "4781:9:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4773:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4773:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23654, + "mutability": "mutable", + "name": "_eip4824Index", + "nameLocation": "4800:13:17", + "nodeType": "VariableDeclaration", + "scope": 23666, + "src": "4792:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4792:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4772:42:17" + }, + "returnParameters": { + "id": 23656, + "nodeType": "ParameterList", + "parameters": [], + "src": "4815:0:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 23701, + "nodeType": "FunctionDefinition", + "src": "4896:318:17", + "body": { + "id": 23700, + "nodeType": "Block", + "src": "5023:191:17", + "statements": [ + { + "expression": { + "id": 23690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23677, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5033:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23680, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5088:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 23682, + "name": "by", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23668, + "src": "5122:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23683, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23670, + "src": "5126:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23681, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5110:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5110:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 23687, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5153:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP4824RegistrationSummoner_$23814", + "typeString": "contract EIP4824RegistrationSummoner" + } + ], + "id": 23686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5145:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5145:7:17", + "typeDescriptions": {} + } + }, + "id": 23688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5145:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 23678, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5040:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "predictDeterministicAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 22002, + "src": "5040:34:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes32,address) pure returns (address)" + } + }, + "id": 23689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5040:128:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5033:135:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23691, + "nodeType": "ExpressionStatement", + "src": "5033:135:17" + }, + { + "expression": { + "id": 23698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23692, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23675, + "src": "5178:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 23693, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23673, + "src": "5187:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "code", + "nodeType": "MemberAccess", + "src": "5187:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 23695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5187:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 23696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5206:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5187:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5178:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23699, + "nodeType": "ExpressionStatement", + "src": "5178:29:17" + } + ] + }, + "functionSelector": "4e7984ed", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registrationAddress", + "nameLocation": "4905:19:17", + "parameters": { + "id": 23671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23668, + "mutability": "mutable", + "name": "by", + "nameLocation": "4942:2:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4934:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4934:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23670, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4962:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4954:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4954:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4924:48:17" + }, + "returnParameters": { + "id": 23676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23673, + "mutability": "mutable", + "name": "addr", + "nameLocation": "5004:4:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "4996:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4996:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23675, + "mutability": "mutable", + "name": "exists", + "nameLocation": "5015:6:17", + "nodeType": "VariableDeclaration", + "scope": 23701, + "src": "5010:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 23674, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5010:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4995:27:17" + }, + "scope": 23814, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 23778, + "nodeType": "FunctionDefinition", + "src": "5220:897:17", + "body": { + "id": 23777, + "nodeType": "Block", + "src": "5467:650:17", + "statements": [ + { + "expression": { + "id": 23731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23721, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5477:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23724, + "name": "template", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23650, + "src": "5531:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 23726, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5565:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5565:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23728, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23703, + "src": "5577:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 23725, + "name": "_saltedSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23813, + "src": "5553:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (address,bytes32) pure returns (bytes32)" + } + }, + "id": 23729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5553:29:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 23722, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22023, + "src": "5492:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$22023_$", + "typeString": "type(library Clones)" + } + }, + "id": 23723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "cloneDeterministic", + "nodeType": "MemberAccess", + "referencedDeclaration": 21988, + "src": "5492:25:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (address,bytes32) returns (address)" + } + }, + "id": 23730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5492:100:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5477:115:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23732, + "nodeType": "ExpressionStatement", + "src": "5477:115:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 23738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 23733, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5607:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 23736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5626:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 23735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5618:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 23734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5618:7:17", + "typeDescriptions": {} + } + }, + "id": 23737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5618:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5607:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 23761, + "nodeType": "Block", + "src": "5802:191:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5878:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5878:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23756, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23707, + "src": "5906:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23757, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5931:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23758, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5956:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23751, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5836:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23750, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5816:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23528, + "src": "5816:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,address,string memory,address) external" + } + }, + "id": 23759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5816:166:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23760, + "nodeType": "ExpressionStatement", + "src": "5816:166:17" + } + ] + }, + "id": 23762, + "nodeType": "IfStatement", + "src": "5603:390:17", + "trueBody": { + "id": 23749, + "nodeType": "Block", + "src": "5630:166:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 23743, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5706:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5706:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23745, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "5734:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23746, + "name": "eip4824Index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23648, + "src": "5759:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 23740, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "5664:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23739, + "name": "EIP4824Registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23636, + "src": "5644:19:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_EIP4824Registration_$23636_$", + "typeString": "type(contract EIP4824Registration)" + } + }, + "id": 23741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP4824Registration_$23636", + "typeString": "contract EIP4824Registration" + } + }, + "id": 23742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 23577, + "src": "5644:44:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address) external" + } + }, + "id": 23747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5644:141:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23748, + "nodeType": "ExpressionStatement", + "src": "5644:141:17" + } + ] + } + }, + { + "expression": { + "id": 23768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 23763, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23719, + "src": "6003:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 23765, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23710, + "src": "6028:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 23766, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23713, + "src": "6039:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + ], + "id": 23764, + "name": "_callContracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23802, + "src": "6013:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (address[] calldata,bytes calldata[] calldata) returns (bytes memory[] memory)" + } + }, + "id": 23767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6013:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "6003:41:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 23769, + "nodeType": "ExpressionStatement", + "src": "6003:41:17" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 23771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6076:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 23772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6076:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 23773, + "name": "daoURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23705, + "src": "6088:7:17", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 23774, + "name": "registration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23716, + "src": "6097:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 23770, + "name": "NewRegistration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23646, + "src": "6060:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (address,string memory,address)" + } + }, + "id": 23775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6060:50:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23776, + "nodeType": "EmitStatement", + "src": "6055:55:17" + } + ] + }, + "functionSelector": "c3b7822f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "summonRegistration", + "nameLocation": "5229:18:17", + "parameters": { + "id": 23714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23703, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5265:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5257:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23702, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5257:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23705, + "mutability": "mutable", + "name": "daoURI_", + "nameLocation": "5295:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5279:23:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23704, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5279:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23707, + "mutability": "mutable", + "name": "manager", + "nameLocation": "5320:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5312:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5312:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23710, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "5356:9:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5337:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5337:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23709, + "nodeType": "ArrayTypeName", + "src": "5337:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23713, + "mutability": "mutable", + "name": "data", + "nameLocation": "5392:4:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5375:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23711, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5375:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23712, + "nodeType": "ArrayTypeName", + "src": "5375:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5247:155:17" + }, + "returnParameters": { + "id": 23720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23716, + "mutability": "mutable", + "name": "registration", + "nameLocation": "5429:12:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5421:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5421:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23719, + "mutability": "mutable", + "name": "results", + "nameLocation": "5458:7:17", + "nodeType": "VariableDeclaration", + "scope": 23778, + "src": "5443:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23717, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5443:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23718, + "nodeType": "ArrayTypeName", + "src": "5443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "5420:46:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 23802, + "nodeType": "FunctionDefinition", + "src": "6590:3797:17", + "body": { + "id": 23801, + "nodeType": "Block", + "src": "6731:3656:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 23795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 23791, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23782, + "src": "6745:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 23792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6745:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 23793, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23785, + "src": "6765:4:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 23794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6765:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6745:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 23799, + "nodeType": "IfStatement", + "src": "6741:66:17", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 23796, + "name": "ArrayLengthsMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23638, + "src": "6785:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 23797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 23798, + "nodeType": "RevertStatement", + "src": "6778:29:17" + } + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "6827:3554:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7026:22:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7043:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7037:5:17" + }, + "nodeType": "YulFunctionCall", + "src": "7037:11:17" + }, + "variableNames": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7026:7:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7134:7:17" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7143:11:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7127:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7127:28:17" + }, + "nodeType": "YulExpressionStatement", + "src": "7127:28:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7238:40:17", + "value": { + "arguments": [ + { + "name": "results", + "nodeType": "YulIdentifier", + "src": "7264:7:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7273:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7260:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7260:18:17" + }, + "variables": [ + { + "name": "resultsOffsets", + "nodeType": "YulTypedName", + "src": "7242:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7439:59:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7465:11:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7482:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7485:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7478:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7478:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7461:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7461:37:17" + }, + "variables": [ + { + "name": "dataOffsetsEnd", + "nodeType": "YulTypedName", + "src": "7443:14:17", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7653:49:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "7666:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7686:1:17", + "type": "", + "value": "5" + }, + { + "name": "data.length", + "nodeType": "YulIdentifier", + "src": "7689:11:17" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7682:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7682:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7662:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7662:40:17" + }, + "variables": [ + { + "name": "m", + "nodeType": "YulTypedName", + "src": "7657:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7888:2369:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7961:42:17", + "value": { + "arguments": [ + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7974:11:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8000:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7987:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "7987:15:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7970:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7970:33:17" + }, + "variables": [ + { + "name": "o", + "nodeType": "YulTypedName", + "src": "7965:1:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "8123:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8186:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8189:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8182:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8182:12:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "8284:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8271:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8271:15:17" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "8089:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8089:248:17" + }, + "nodeType": "YulExpressionStatement", + "src": "8089:248:17" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8632:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "contracts.offset", + "nodeType": "YulIdentifier", + "src": "8658:16:17" + }, + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8680:1:17" + }, + { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "8683:11:17" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8676:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8676:19:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8654:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8654:42:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8641:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "8641:56:17" + }, + "variables": [ + { + "name": "c", + "nodeType": "YulTypedName", + "src": "8636:1:17", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9281:200:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9383:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9389:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9395:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9395:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9368:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9368:44:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9368:44:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9440:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9446:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9446:16:17" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9433:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9433:30:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:30:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nodeType": "YulIdentifier", + "src": "8843:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "8843:5:17" + }, + { + "name": "c", + "nodeType": "YulIdentifier", + "src": "8892:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8938:1:17", + "type": "", + "value": "0" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9000:1:17" + }, + { + "arguments": [ + { + "name": "o", + "nodeType": "YulIdentifier", + "src": "9086:1:17" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9073:12:17" + }, + "nodeType": "YulFunctionCall", + "src": "9073:15:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9147:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9207:4:17", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "call", + "nodeType": "YulIdentifier", + "src": "8813:4:17" + }, + "nodeType": "YulFunctionCall", + "src": "8813:449:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8785:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "8785:495:17" + }, + "nodeType": "YulIf", + "src": "8782:699:17" + }, + { + "expression": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9570:14:17" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9586:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9563:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9563:25:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9563:25:17" + }, + { + "nodeType": "YulAssignment", + "src": "9605:43:17", + "value": { + "arguments": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9627:14:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9643:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9623:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9623:25:17" + }, + "variableNames": [ + { + "name": "resultsOffsets", + "nodeType": "YulIdentifier", + "src": "9605:14:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9736:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9739:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9739:16:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "9729:27:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:27:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "9848:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9851:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9844:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "9844:12:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9858:4:17", + "type": "", + "value": "0x00" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "9864:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9864:16:17" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "9829:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "9829:52:17" + }, + "nodeType": "YulExpressionStatement", + "src": "9829:52:17" + }, + { + "nodeType": "YulAssignment", + "src": "10178:65:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10195:1:17" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "10198:14:17" + }, + "nodeType": "YulFunctionCall", + "src": "10198:16:17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10191:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10191:24:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10217:4:17", + "type": "", + "value": "0x3f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10187:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10187:35:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10224:18:17", + "type": "", + "value": "0xffffffffffffffe0" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10183:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "10183:60:17" + }, + "variableNames": [ + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10178:1:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7846:1:17" + }, + { + "name": "dataOffsetsEnd", + "nodeType": "YulIdentifier", + "src": "7849:14:17" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7843:2:17" + }, + "nodeType": "YulFunctionCall", + "src": "7843:21:17" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7836:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "7836:29:17" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7866:21:17", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7868:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7877:1:17" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7880:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7873:3:17" + }, + "nodeType": "YulFunctionCall", + "src": "7873:12:17" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7868:1:17" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7811:24:17", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7813:20:17", + "value": { + "name": "data.offset", + "nodeType": "YulIdentifier", + "src": "7822:11:17" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7817:1:17", + "type": "" + } + ] + } + ] + }, + "src": "7807:2450:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10363:4:17", + "type": "", + "value": "0x40" + }, + { + "name": "m", + "nodeType": "YulIdentifier", + "src": "10369:1:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10356:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10356:15:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10356:15:17" + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23782, + "isOffset": true, + "isSlot": false, + "src": "8658:16:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7143:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7485:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": false, + "isSlot": false, + "src": "7689:11:17", + "suffix": "length", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7465:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7822:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "7974:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23785, + "isOffset": true, + "isSlot": false, + "src": "8683:11:17", + "suffix": "offset", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7026:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7134:7:17", + "valueSize": 1 + }, + { + "declaration": 23789, + "isOffset": false, + "isSlot": false, + "src": "7264:7:17", + "valueSize": 1 + } + ], + "id": 23800, + "nodeType": "InlineAssembly", + "src": "6818:3563:17" + } + ] + }, + "documentation": { + "id": 23779, + "nodeType": "StructuredDocumentation", + "src": "6313:272:17", + "text": " @dev Call the `contracts` in order with `data`.\n @param contracts The addresses of the contracts.\n @param data The `abi.encodeWithSelector` calldata for each of the contracts.\n @return results The results of calling the contracts." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callContracts", + "nameLocation": "6599:14:17", + "parameters": { + "id": 23786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23782, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "6642:9:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6623:28:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 23780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6623:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 23781, + "nodeType": "ArrayTypeName", + "src": "6623:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23785, + "mutability": "mutable", + "name": "data", + "nameLocation": "6678:4:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6661:21:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23783, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6661:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23784, + "nodeType": "ArrayTypeName", + "src": "6661:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6613:75:17" + }, + "returnParameters": { + "id": 23790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23789, + "mutability": "mutable", + "name": "results", + "nameLocation": "6722:7:17", + "nodeType": "VariableDeclaration", + "scope": 23802, + "src": "6707:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 23787, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6707:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 23788, + "nodeType": "ArrayTypeName", + "src": "6707:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "6706:24:17" + }, + "scope": 23814, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 23813, + "nodeType": "FunctionDefinition", + "src": "10393:371:17", + "body": { + "id": 23812, + "nodeType": "Block", + "src": "10501:263:17", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "10520:238:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10600:4:17", + "type": "", + "value": "0x00" + }, + { + "name": "by", + "nodeType": "YulIdentifier", + "src": "10606:2:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10593:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10593:16:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10593:16:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10629:4:17", + "type": "", + "value": "0x20" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "10635:4:17" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10622:6:17" + }, + "nodeType": "YulFunctionCall", + "src": "10622:18:17" + }, + "nodeType": "YulExpressionStatement", + "src": "10622:18:17" + }, + { + "nodeType": "YulAssignment", + "src": "10717:31:17", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10737:4:17", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10743:4:17", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "10727:9:17" + }, + "nodeType": "YulFunctionCall", + "src": "10727:21:17" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "10717:6:17" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 23804, + "isOffset": false, + "isSlot": false, + "src": "10606:2:17", + "valueSize": 1 + }, + { + "declaration": 23809, + "isOffset": false, + "isSlot": false, + "src": "10717:6:17", + "valueSize": 1 + }, + { + "declaration": 23806, + "isOffset": false, + "isSlot": false, + "src": "10635:4:17", + "valueSize": 1 + } + ], + "id": 23811, + "nodeType": "InlineAssembly", + "src": "10511:247:17" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_saltedSalt", + "nameLocation": "10402:11:17", + "parameters": { + "id": 23807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23804, + "mutability": "mutable", + "name": "by", + "nameLocation": "10431:2:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10423:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10423:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23806, + "mutability": "mutable", + "name": "salt", + "nameLocation": "10451:4:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10443:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23805, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10413:48:17" + }, + "returnParameters": { + "id": 23810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23809, + "mutability": "mutable", + "name": "result", + "nameLocation": "10493:6:17", + "nodeType": "VariableDeclaration", + "scope": 23813, + "src": "10485:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23808, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10485:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10484:16:17" + }, + "scope": 23814, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "EIP4824RegistrationSummoner", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 23814 + ], + "name": "EIP4824RegistrationSummoner", + "nameLocation": "4510:27:17", + "scope": 23815, + "usedErrors": [ + 23638 + ] } ], - "name": "NewRegistration", - "type": "event" - }, - { - "inputs": [ - { "internalType": "address", "name": "by", "type": "address" }, - { "internalType": "bytes32", "name": "salt", "type": "bytes32" } - ], - "name": "registrationAddress", - "outputs": [ - { "internalType": "address", "name": "addr", "type": "address" }, - { "internalType": "bool", "name": "exists", "type": "bool" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, - { "internalType": "string", "name": "daoURI_", "type": "string" }, - { "internalType": "address", "name": "manager", "type": "address" }, - { "internalType": "address[]", "name": "contracts", "type": "address[]" }, - { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } - ], - "name": "summonRegistration", - "outputs": [ - { "internalType": "address", "name": "registration", "type": "address" }, - { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } - ], - "stateMutability": "nonpayable", - "type": "function" + "license": "MIT" }, - { - "inputs": [], - "name": "template", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - } -] + "id": 17 +} \ No newline at end of file diff --git a/Implementations/Subgraph/daostar/build/EIP4824Index/EIP4824Index.wasm b/Implementations/Subgraph/daostar/build/EIP4824Index/EIP4824Index.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5b1ee4f982136aa257d3e32eebe8ce6f38b03df2 GIT binary patch literal 33430 zcmeHwdw3Mtb!R=grIt#d2Jsd!C5eZ4>HUP^QGgf(Gr#~dV|&KdG*Tm4k8aW3V!$2` z%*)0bvLT5#ne5_SHtSuF_Zxr9ANgax{rF?-_1fcj){E`fCJ9MM>?Fh{&cyLLlNe|A z_dB<$tJEzR4W;bbI(1uByMSm+_4U`?PV^h1%2R z*|TRg)T%qQX)M~)5!9d6jNddYGnqaWO&rT)^IEKOD3MR(GLzZC55!FlT9`aC-a(Ko}L^(mdxgAj-`foCkIpGiLs`9=14x9N)KyVW*vFX^Ed@^@5vp0Eq3fhWdwA65aI)Ajlaf$>vNMHtJo)?gLFq=%| zlbWFj%EvOpO(@=TEH!aF*EE>OYg%L^mr2hhXgZ$FjPImenr5zQ&~!u7b<;GV+o&F; zhK({K62XlT!9%3H91jy<2@JjLXVFhV`Hp6t)fCWqXAqbK5rQZ|89_NgjG%&`lE5OU zBA7!km!O&;PB4#PK0yt^0)mAEiwG7IEFoA*u#BLVU^&4Gf|Udh5ZDBD1oZ?B1gi*E z6RaUvOVCKLj$l2(27-+Qn+Tc+nh9D6S_#?++6g)cItjW6x(Rv+dI>fYY$14%U@O5k zg6#xvh!(#n@Jj;!o4_v%{OjK{r_&)@GL*V}ucun9p1%6B5 zw*~&5!0!nBuE6gJye{zf1^$7+KNNUF;2#P6V}XAn@TR~&75HZYzc26y0{>j#UkLn5 zfwu(ymB1eg{E@)h0{>dzj|KjXz_$hdt-zlM{5yd^75Kjd{!HNC3w%f5KM4Fsfj<{` zN8m36{*%CW1)dY%eO}-T0$&vPlE9Y*UV+W%?&a54{;Iz4L?S&jmOPMr=5TU2mCI)n zdCYmOzN%3F*x`O{?VO_s0{ufxDn6L{eD~SOW)o+2P98s=%$i2rt;D?Vkp|P8=U26M zsk%s@uDwmwMFVwR9jdO(t9vX};8*VT%Q}x?ELiDrtO!nk>ZQSkzWj+~HaR)|cw%faX~w4z9br&b4f7TT ziS{A1srvceXryD;2sKl<^qoqk^M?}I#JIVjG027YLysgT`qKIA8Aa+dUbyZ(Py@m( zTH@j!8Bb*MSP|eXgZW*Fu`zS8r>uY!OP0Cl-q??36X_f%;9us_1x1ZJ$1;PX<}%L| z9*uCXUF{-2kxfisFnr>OiU+gY(~^rP23oOrDzQKImBlhBT|eNBB`|c`GrUh-S4=HK zH|tlq-FZR=)E;2i&~SG&zmHW96k(|m2l%XBIW30IV$H^B5m-5$3fFqBb2yos9LwJY zO%&Vc*;kFO{yO<~jDV>V4e=?9zU zsWo8JGPMS5TBp?P0Z!Z08sM}~nN5L7-?7}4{6I31mEr70f^|4Km`ou;-7tt0-gJgwWC?Ie99nH?QV9!lg-m_43R3oL=3LW-2h9?2(0lV-17 z%=X9_x=Rif@XXC#_$lx>k{V7Y@{`%5xury^T_+~fqkEHyAq?n2&ozZ|a4?z6?N6RL zl+2E&a?A&n>{~r`DJ)KE)v(Q*7i`#_$|lu>-yWsK%+odBlt8z7fT*C-UZjVAGLFQ7uHuPv*>n!6Eo=+n-O4n}>p~)pt5MI7!bq zIGG>Jj3>=UgRLbldpJ0JSr1%~JQD1%;Nog391Ri$-S{ytWOHn4b$L8!8+V{jr1B>` z@t*M7k0!BOg1^J=%x@&JA3be;z!QJEcJqUtZxpre%8ZYv^6+i*LwBK;(s(j|{(m_nxuDa38jP=11yXC-qS{_pl=5 zhS?%W1Dmkvc5m7)_~2=Pg=NK9nXx#Uh{nQ4V}%$ww;Sbgasg)>+> zn1Ta5Hi3|sG>5$Gz-J>?E5=KfvclZWCDXadoa9Y8^SBr4eO4ld+dN!qVb3@&#);BC z3Szh@sZujPt~S~(!ieY5MM9XPUKH>fly8}1rKa+|ZoHJtomc7U$Xtz>87~0%y@@XR zcbgNXLxAl0BgwqW_@uY6`LtX!&8#<({d!MJX7l5f~>sqbZMX{m>F6y&y=>S`Q_^8 zqowU$&oa9{RyvLXfAiT=FP!S{=EqCP{T27QQX3pStx`DiY-wEZ<}H>FraOp&=k!ts z6)l_3>!qSeiyxd`(7g>u&;_9X!uX&+HL-K%i+ZW7yC>BS)qF`W9p%x~cruqyj8B*^ zPtz)*h#!7JuS^XMWR4Hy5$v?a7!r#N{Y+aI9T-R_pV6vtok*p%_2mNtlWE>U>UYS8LUCo)nW0Y=S;GjY<1jMhg->b31!z2U_3 zPBkm*br9Nyt=amh12!YhxpU8+bmFJ#bz8TMy|p{=?rJYkboWNHEX&qbX|`!cy9~{a zSo?K@Qrw;@#dq;`iDIB7J`%Sm%P9KQx{Qb|ml%50yNoJ!-etsX6L{8l4P8HLptrs` z8Ys2R8ZNdz0!qjykGf+#;x+0D#{fseZ8jXUfLK;QG=UK*)W_UoMpb8(LIL%c*(F48D;Mt-Ex(CS6P%X5kGW4v%w7}lG3 z@e1i}eGlmMYKwx{S}n!b@PxOYqm4$~(NEP=1n=P?)y#3%L4|engYuK`wepi$N4Fy| zeB>aRK(od=6J8DQC})Hd8v%vMi%CTz zm>7x)E+!3umt%d_mn@6~JaqV;1IyOZoR}YCXT3hc8*sBDn>2BFgFP7}haBcfS6C-5 zZeZ(BnP`}I5%Evn#b^VF2ZhrWbxbZW?nu|xgHI5FzErluRvBga@5^(oMf zkU-A3xLlyZ2s=V8bSXVXY;%*QZ`Rc7{l`ahwudrQffb3anvn=8Xqkn6p%iz1fw z4TI|`;z=DtguVv}iH>Xnao<5oD7o{iR=WU!(xkQk7bKVCvR;tUd@Xh zj|XbFyh?oX*426wtyta>v=M=v1;|cJmA}XZYk|r{6pC=JH_%OeB|Y52YJ#U&eataV zF(cNH48QxX#;p2g6;qLUPK#tBz``%F>U28>E5m6d`Gy+h+F#4@If!UZY=5m|QsibCCF@cgT z0W89uK?ISC*fCt0CssnOBeuyE+psOHyq2{Cn+CWJ(4n26>lh`jBQ+7pI54>+t3pz? z650hRw0^C|xwydj3VtuIRJP8HeU7^lZnT(do?BdvERIthz3hw2FjtrS(Ucxm?T(EC8Lm{aPd`t3O6cE*t98D zEh9(;F(QyeoK12cvC5#sc&)WZGJDPz69Ev@6`K(x>%tweCO+T7hQ#ECWa>tPPJj&w zodoHZ^&4U(=H+m3?pd8{)i889%%-Nh1`}yf)FR`AyTD=hu?fm?cOG=sh+S6LJ&e@B z`JxQRQK|}UX)Zpz>aPIOP?tfL`&=Y!4- z*|~+BV_%#)$Ks1T0)seL8i;dk3QpX_+`G2Qd3)6~oK4}pic}qe$-7fKY}Jx;JvR{! zw`b19)x`Ra%Nv%1V{@JpMOKaYlKKcjjaU>~;FbV;U8-VVt(cd-3J(PicdXEq?!3Jk zck`ke0<&R9VQJY?$Wl(inP&Kg4v1X7#nAxLX<1(oQvz7PNzH&E*qf_GG>~>t^T=9 z&VSLJO@bi}$Sb(BwVrifN;p+c4AWZzY?V{ty^EknRyl_Es8(~07cR26#PA}6uOYAr zm9;~?YT&{|1g;sxi?0OK1sVcPLTin#KWFP-sKaK$nJ-LKh_elOqvE{12`NX7mBiWt z`Zwmp7u4&r0yH~s$DLZ&Jd9HGEQtE$RuI%u^KbEPx!9o9x!M{~DoIx;WjW_I0Ba$p zN||N-Qq+i?)t_@NSH0GYnC~)Hs;O%Nk@io141fQ+(M(`T%WCWLMoJ%!DBltSfSXvX}$`DKr0k)_O zs*&1MV_Xr(h?MfC!2yRAh@Xg{n08#@m!T$tG0SRClR9r~z!1x)>wv^S#>+)#xhPBL zOB-KVrcxH(RZ<-Wm1V|j;t%*3h9fhzpw4p}sm^<0ys;^uaL*d9!Vw4V*?O^wv>3I5)6_-jM*!m{W3&nCDa%RKD5L!@lydQkzVLtar2624bs&WX)Id>I5Kf2*!6ippY{u2o}! zmo+UY9N$buEz(*-TvsMbeAH_3L!Iu2I!8kD#STWh>)5sh!X1_m39GUKUFl|M{;Cm- z-dKe7vxV6!Z_N$&y)8ySfB1HVQNigS!8>#Ry{i~KIE9csO@{)bt(v~Y*x{736&pZr z`LD0AE1dFuwaC~jpsb30wM+<*3#rGw^2py5sC=MKhguvBa#jFuj~(ILN<(Uyk5F1z zD}s!ZXxgr+E4~16G1zMqz7~zIjymUhkf#P>i0Pc`c7=#IS9(B*4O}4R#6TEhoHIR_ zjZM$yW>105W(>F{iV%Nub9{|u-(?^(>F#Iv1KjuO?%Ecw zyK7t6T{(tOK4o;})Z0wD`=su4zgKscd%fkJDXr&t0x;#v~MXfs3L`GhQ@<{CR6Q=N?qPE~|S< zXkum@Uxh_Oco@#xt$1m1r7gaMGuW~|6Vr?x|NqC+fUV8_gkIPpRa9D4bLLjZ=gqHK zuyE`90Q*%peTYE=mS9eeE<}D9yeOceOeTTDi z*Y3VO5AE&WxBuZs4jer6=;0$rAA9_X4}9=LPd@eGj|@DWI5s$xJU)CPH8MIjp3Y31 z%;xfwr=B@|=A$2b_T$f;J*Pjfzo5UUzog@jw)u-R{`$;mKv{*d8f6Vi1rpnKY(!~7X+~*9X-DZq;m)iZr59xz%661D$oPu{Un1y2`3i5oO7JE@3rZVG2g=u2 zu^Hued9%g4`8uDzL2!-Wn*`q?_%^}s5qyW>y9C@!eUCTS34Wj84+w4${1L&Q5ZomA zbArDl_$z`R5!@#DV}c(L+#>jEf*%t|>mTy&ZwTHd_*;UX5d0m%PYHfT@b?7o5c~td zpA!5d!Cw&koZ$NeKP0$A@C$;MX^@u)&J&2tukh|g0*;U6xA^d{3H~j?zazLz@b3wJ zo8UhXe3sxp5qyr|-w^yd!6yiQmEhM1E)e`O!6kxE5&R2+f1*sk#Jhh<@GAtLCb&rO z8G?UB@S6m`LGUgq&hhSff)@y0CHRj7pCtG^fu>&mSXKntlVxhUl$Bb;dF-gruCF?; zI~U&6R%uwHtz`l%>r&UZbV;HmoJFHB+?LW7cZYu0(kb?J4b;)(o6HU=DB+&rP`I&|8J2FGp_`Rt+htP>!G_ z3z{@|IDucjJ(24Eu4#;e4f4 zO}rS&F_9c?mnxyr--3n0d1Wg`&V^nuk z>v_u`m6FYs{gNd*e$BG#ZS;9LqG@lS+(d~-HLV5Z5XuC~#V9%hI)-}7vKE>^$GWFo zK@$tfV^Cw2GFp|ji33@Kau}ivLk(0o2jm&<0P6GFGf+WR8-*G{3EtPMtOimpN1>3X zM0qJ~2tAB}g2u>eConXHe|`=UK;SMz@l8xeP|9=7``R2)@auCh0$^f%kZ1_Kq8?6m zeU7z(^{Y_W>kxW6jUF>lb6&2;0m+g5!@(}hwe)AHeK8NCgI^Vu_A0?!)SQ3>#DEiAs22UaQf)2N(c4^NNsJ@r1^pljx+CJ_4PwTr$iT=tK%|nvxU)u67%exMOK9lX$_PX z%+JNvub3^kYtdR!+ECh2I#4=Mx=^}NdQf@=qZP0fc&)%|1zs!gT7lOJyjI|~0*_pX z(I!9CSO-ccN*78uN)Jk}^h7SiXqTT3z)qAdlx~zBlwOgBJ&_ABI^?GlunVOdr3a-~ zB&Ia%iCl=$DL-9+-6%aMy`bXAC^aQwZ{*a8!k=!G9+Y0(ar7J+rKUvejhu+ZpB|K6 zKx&Ai=g25EC1P*nL@fUF;zwzb8sg|VGD=N}*c&+!%el17GL}aWP?lMrjL}*Q{WG;v z3p}O;wr_#|x4?5+;7ctCJ+$vktk(+qR?xSCz7_PXpl=2JOs(1m`ZmzFfxZp&ZJ=)h zJ^gAX)@}!VJLua%-wyhA(6@u0J~zTO2W^X3xwp_%nzygpx!#jwgCFy^@|q@1TWgC2E@5;)p3VdnPr1 zhESN$9>*PL13j8vNzbBp(89D5HBD`C#FUynlbSzV_m2Z|CUG{GS>6P>>dIv2`D^b(b7Dr5}*)yq~tM!)t6xP;y>mXyo zUWwq0vW$p~UW_!5TSKM4Sdo ze;5I$!NR*|4gB6~-JWiZv);nlL?s0zg%yJK|=YH!}$SNkjElju{`-a_qCjD|T6^3*%3 z_WT+@Gv}`%ol9$k$E$069v=p0)Iz&&u9>NJkGY$nA_*_7l@Y$Oc4i~w-&}J`$Gt(G zx_wL0Utepr(mLx=9z)xxc*Zk;HvEQr9cE^YsApcr++!<>bD>ej_DZ8awspuzRPF1H z)_f+0+=AY$0l+_d0lGvpH%N`vQXN(EQHr~4ggObceztiSxYO-1X)n%D&Ira3=d}$g>)YUGeSNU%Azn*n z62!{jrNR`+ZU7IN?5$1y>j8!L81&E&%c7lepvjl~ZeuRm&0lR23Eph7R?sKt&l89) zTu+klHtsVRSF?z7z9>Y z`Dfa3zSgP?-0JTkwIvW8|AKqS8$g5oZnau#saqR`BA$XB_%e*~C{;W|F13kIT*c)n z1ll(1QIhUMISRA!JsVy08C;7uVcd`&2S&DV<(n_{s=%g(J1f7#iC9`kT#rUl$`Q&_&+DC5HzjL9Ver|5?QSvEq>RefXo1Ha#p8UJwVgbAQ1*fTpmqQ} zlxexdPanE7NNGmUItbahjCF~zuXp(=LK-&Xw%WOkHmo=Abonpj9>HSDmktU;^-z%O zQnyNcx~;90t82z`m1z4mII-t$|5X>Y;V-Vvr5?d}wZ{)H^Z>q4;v3ruj845BcHROe zroi$1qOc#2kpI3VQKuX(1e5X*j2s{kxVUPP;3jg|MUw0~` zAMosY2N=-E`7QptacYo0AOQP(-o5G& zgwJ}VTaSBr*4--}Yvw#J@aShHW-P%?szxnzo=RI z7IcAYVX$EB{0;x?{R6n7P8n~6AY;f5GD-0N+1 z{Y)~FPK+n@Z_RJgYMvWQ9cw-|nHtNd(z)gYkMq+VsoXJ)DWHb2;{^xPCJZ;M7 znsJoIcqZM9!w=jO|KxV+iGRk%d$N$z0Go5(X@KVTdt$pCx(5a}Pjg^kWbaHE3>FR% zZ03Kw#_0?05rcs<1)~p#j9p>U9y zq6T{$SJ|wN#k#kxT@{_;0c_1UZD2CFZCk^@0M5dUtAS79)if}WJULG_;0T*BS0B6# zPMn!PovH>i6K879sbRjy)D7y&8`W$Kr~yvA;Qz7+Q0T&*nV2?Ui3acB(M17`t8mkt z%4ZVoZHpgzzbuDRxrwpF8J_p>Tq2!GpBc|g=ALa?Qt*5^=|MbksV&UK&aM}XWKwD6 zRf4f>sbEZT5xO@Hji}ucLbB!eOS~VUWX1mBWIBoCFp@*fef@_zdfGbrdCKe5huzLW zoZzSqcf=8dLjwcqoS6m~YV%McgX5&KIO1!i(gEZ0kea0aS%#PnS$KbJ{wkb9IbKvA!{^)iVlxYJTiH za`1petHK;vGb8Gt9o%p{iKBh;YnM!`CP>w|HJuqs4vc4pCdV+=yM?gfvCOdqvJrLh zk5O5->TFQUt@TYV) zxAIUk$B$$D`i}b$lQFt*_^Hu%{~TmCxW}dLx_>tP-hrr*-JzJcC#XiladFR4EeprR zJ$JP{1Q$PI#X{JKTwKLegk@d|Y|vgfNwVzUJHz^FU1} z9K&1PfB&ixCcf*$9}daNJGxe)_Pnry`DeY(-y2e}!U?T4A^cIar81)hVaFy1a!EF_ z@X3&4^Rj3xbtQ)!FM4YBnfqp0y#M~WmmH+LB*c{RwYl_>`xnXc-oRna%N`2PPR`A% z4H0-exp)Zd@(u<-X7Y7AEThv!HzmMRo|^^4+~IM7S=DseTs5 zB<|ku#QiIJnvmfSbJgRs%D6D{)rZ6LRnga%b1kOBUFe`OM8H>v zRo;a$Paj_wBK|4n1v$xXy>tJ{P{~ElhMi$qw03O_&7-|-Q)nJt9Zg}?(cjY?Rty~c z-V&Neds}O09$g)6VR_&<`u5N~x;i?-W@COz-g)r;y;V*U=SyC`c=Ha)?+P&?3k>~Z z^}7$uf_&-#by*pELS)ty&p!jbH$*5d3=}d24*TDHWEKWneAfDw5SyHWoQ321ADj() z1kP^X8e;Jk=?16&Xu-A+Q$+DCeCA+#hzy3T3Li$;5t7j%?^6m+NJa%~?mQaK;imsw z!>$mC4;41u2Of5Z9CG245Pc!?b+Kk3*6j%y0;c)w#6uxb+aJ=p_zg+nn;H*?T*-<)(eX$~XPM@s9tT3akMM(>`*n72 zaLA#M4&pDf{M5*!As3zEkCPk@$**{cJrdG^<&BB@Uck|iikq5HJQh;0z(W0ah?fEM zH5ua*AtO=ghg?1of}{Ug0@=FBTZW^jKN!L}rsMdb5D~qI-!AX-GEdH)jPgO6r$WT0 zA{o7pTYNao>zaFg^yVWWl4M_2aYz3%IRlT~{}SmlE%~s{(;=1+pRG71KNgah6|)OF z8UL{m$+s___t_Btb3cP2(#lf4-Uot)X2tM@0I7aupA7MS*%wvfM-k`avm!43a4z`S zqTvwRbzfXDzWURU6SESXyh*QkreBeN2srhI;BG{ovyq|C7pd8f}x#rN@9 z2^xj9B0Vdjsq7>(OQN|xJrN@1^tI-O@{_aTAaFMS<5t-aFN=Kn_;xH8BCYc|dDATa z!P!`?rv2pBf- { + let result = super.tryCall( + "DEFAULT_ADMIN_ROLE", + "DEFAULT_ADMIN_ROLE():(bytes32)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBytes()); + } + + REGISTRATION_ROLE(): Bytes { + let result = super.call( + "REGISTRATION_ROLE", + "REGISTRATION_ROLE():(bytes32)", + [] + ); + + return result[0].toBytes(); + } + + try_REGISTRATION_ROLE(): ethereum.CallResult { + let result = super.tryCall( + "REGISTRATION_ROLE", + "REGISTRATION_ROLE():(bytes32)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBytes()); + } + + getRoleAdmin(role: Bytes): Bytes { + let result = super.call("getRoleAdmin", "getRoleAdmin(bytes32):(bytes32)", [ + ethereum.Value.fromFixedBytes(role) + ]); + + return result[0].toBytes(); + } + + try_getRoleAdmin(role: Bytes): ethereum.CallResult { + let result = super.tryCall( + "getRoleAdmin", + "getRoleAdmin(bytes32):(bytes32)", + [ethereum.Value.fromFixedBytes(role)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBytes()); + } + + hasRole(role: Bytes, account: Address): boolean { + let result = super.call("hasRole", "hasRole(bytes32,address):(bool)", [ + ethereum.Value.fromFixedBytes(role), + ethereum.Value.fromAddress(account) + ]); + + return result[0].toBoolean(); + } + + try_hasRole(role: Bytes, account: Address): ethereum.CallResult { + let result = super.tryCall("hasRole", "hasRole(bytes32,address):(bool)", [ + ethereum.Value.fromFixedBytes(role), + ethereum.Value.fromAddress(account) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + supportsInterface(interfaceId: Bytes): boolean { + let result = super.call( + "supportsInterface", + "supportsInterface(bytes4):(bool)", + [ethereum.Value.fromFixedBytes(interfaceId)] + ); + + return result[0].toBoolean(); + } + + try_supportsInterface(interfaceId: Bytes): ethereum.CallResult { + let result = super.tryCall( + "supportsInterface", + "supportsInterface(bytes4):(bool)", + [ethereum.Value.fromFixedBytes(interfaceId)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class GrantRoleCall extends ethereum.Call { + get inputs(): GrantRoleCall__Inputs { + return new GrantRoleCall__Inputs(this); + } + + get outputs(): GrantRoleCall__Outputs { + return new GrantRoleCall__Outputs(this); + } +} + +export class GrantRoleCall__Inputs { + _call: GrantRoleCall; + + constructor(call: GrantRoleCall) { + this._call = call; + } + + get role(): Bytes { + return this._call.inputValues[0].value.toBytes(); + } + + get account(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class GrantRoleCall__Outputs { + _call: GrantRoleCall; + + constructor(call: GrantRoleCall) { + this._call = call; + } +} + +export class LogRegistrationCall extends ethereum.Call { + get inputs(): LogRegistrationCall__Inputs { + return new LogRegistrationCall__Inputs(this); + } + + get outputs(): LogRegistrationCall__Outputs { + return new LogRegistrationCall__Outputs(this); + } +} + +export class LogRegistrationCall__Inputs { + _call: LogRegistrationCall; + + constructor(call: LogRegistrationCall) { + this._call = call; + } + + get daoAddress(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class LogRegistrationCall__Outputs { + _call: LogRegistrationCall; + + constructor(call: LogRegistrationCall) { + this._call = call; + } +} + +export class LogRegistrationPermissionedCall extends ethereum.Call { + get inputs(): LogRegistrationPermissionedCall__Inputs { + return new LogRegistrationPermissionedCall__Inputs(this); + } + + get outputs(): LogRegistrationPermissionedCall__Outputs { + return new LogRegistrationPermissionedCall__Outputs(this); + } +} + +export class LogRegistrationPermissionedCall__Inputs { + _call: LogRegistrationPermissionedCall; + + constructor(call: LogRegistrationPermissionedCall) { + this._call = call; + } + + get daoAddress(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class LogRegistrationPermissionedCall__Outputs { + _call: LogRegistrationPermissionedCall; + + constructor(call: LogRegistrationPermissionedCall) { + this._call = call; + } +} + +export class RenounceRoleCall extends ethereum.Call { + get inputs(): RenounceRoleCall__Inputs { + return new RenounceRoleCall__Inputs(this); + } + + get outputs(): RenounceRoleCall__Outputs { + return new RenounceRoleCall__Outputs(this); + } +} + +export class RenounceRoleCall__Inputs { + _call: RenounceRoleCall; + + constructor(call: RenounceRoleCall) { + this._call = call; + } + + get role(): Bytes { + return this._call.inputValues[0].value.toBytes(); + } + + get account(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class RenounceRoleCall__Outputs { + _call: RenounceRoleCall; + + constructor(call: RenounceRoleCall) { + this._call = call; + } +} + +export class RevokeRoleCall extends ethereum.Call { + get inputs(): RevokeRoleCall__Inputs { + return new RevokeRoleCall__Inputs(this); + } + + get outputs(): RevokeRoleCall__Outputs { + return new RevokeRoleCall__Outputs(this); + } +} + +export class RevokeRoleCall__Inputs { + _call: RevokeRoleCall; + + constructor(call: RevokeRoleCall) { + this._call = call; + } + + get role(): Bytes { + return this._call.inputValues[0].value.toBytes(); + } + + get account(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class RevokeRoleCall__Outputs { + _call: RevokeRoleCall; + + constructor(call: RevokeRoleCall) { + this._call = call; + } +} diff --git a/Implementations/Subgraph/daostar/generated/templates/EIP4824Registration/EIP4824Registration.ts b/Implementations/Subgraph/daostar/generated/templates/EIP4824Registration/EIP4824Registration.ts index 3c4c5734..93b87760 100644 --- a/Implementations/Subgraph/daostar/generated/templates/EIP4824Registration/EIP4824Registration.ts +++ b/Implementations/Subgraph/daostar/generated/templates/EIP4824Registration/EIP4824Registration.ts @@ -10,25 +10,25 @@ import { BigInt } from "@graphprotocol/graph-ts"; -export class NewURI extends ethereum.Event { - get params(): NewURI__Params { - return new NewURI__Params(this); +export class DAOURIUpdate extends ethereum.Event { + get params(): DAOURIUpdate__Params { + return new DAOURIUpdate__Params(this); } } -export class NewURI__Params { - _event: NewURI; +export class DAOURIUpdate__Params { + _event: DAOURIUpdate; - constructor(event: NewURI) { + constructor(event: DAOURIUpdate) { this._event = event; } - get daoURI(): string { - return this._event.parameters[0].value.toString(); + get daoAddress(): Address { + return this._event.parameters[0].value.toAddress(); } - get daoAddress(): Address { - return this._event.parameters[1].value.toAddress(); + get daoURI(): string { + return this._event.parameters[1].value.toString(); } } @@ -322,6 +322,10 @@ export class InitializeCall__Inputs { get daoURI_(): string { return this._call.inputValues[2].value.toString(); } + + get _eip4824Index(): Address { + return this._call.inputValues[3].value.toAddress(); + } } export class InitializeCall__Outputs { @@ -356,6 +360,10 @@ export class Initialize1Call__Inputs { get daoURI_(): string { return this._call.inputValues[1].value.toString(); } + + get _eip4824Index(): Address { + return this._call.inputValues[2].value.toAddress(); + } } export class Initialize1Call__Outputs { diff --git a/Implementations/Subgraph/daostar/networks.json b/Implementations/Subgraph/daostar/networks.json index 234e0390..b9d7854a 100644 --- a/Implementations/Subgraph/daostar/networks.json +++ b/Implementations/Subgraph/daostar/networks.json @@ -1,14 +1,8 @@ { "goerli": { - "EIP4824RegistrationSummoner": { - "address": "0x5ef59b7cde41b744f36b6e07fef230884f800529", - "startBlock": 7958681 - } - }, - "mainnet": { - "EIP4824RegistrationSummoner": { - "address": "0x37dF3fC47C1c3A2acaFd2Dad9c1C00090a8655Bc", - "startBlock": 16084997 + "EIP4824Index": { + "address": "0xd8f49391ba81942d40c26a50f8ca63cdca6fb3da", + "startBlock": 8901481 } } } \ No newline at end of file diff --git a/Implementations/Subgraph/daostar/src/mapping.ts b/Implementations/Subgraph/daostar/src/mapping.ts index 75087cc1..b190efde 100644 --- a/Implementations/Subgraph/daostar/src/mapping.ts +++ b/Implementations/Subgraph/daostar/src/mapping.ts @@ -1,10 +1,10 @@ import { BigInt, ipfs, json, JSONValueKind, log, dataSource } from '@graphprotocol/graph-ts' -import { NewRegistration } from '../generated/EIP4824RegistrationSummoner/EIP4824RegistrationSummoner' -import { NewURI } from '../generated/templates/EIP4824Registration/EIP4824Registration' +import { DAOURIRegistered } from '../generated/EIP4824Index/EIP4824Index' +import { DAOURIUpdate } from '../generated/templates/EIP4824Registration/EIP4824Registration' import { RegistrationInstance, RegistrationNetwork } from '../generated/schema' import { EIP4824Registration } from '../generated/templates' -export function handleNewRegistration(event: NewRegistration): void { +export function handleNewRegistration(event: DAOURIRegistered): void { const chainName = dataSource.network() // returns network name let registrationNetwork = RegistrationNetwork.load(chainName) @@ -18,52 +18,20 @@ export function handleNewRegistration(event: NewRegistration): void { let registrationInstance = RegistrationInstance.load(daoId) if (!registrationInstance) { - EIP4824Registration.create(event.params.registration) + EIP4824Registration.create(event.params.daoAddress) let newAddress = event.params.daoAddress.toHex() registrationInstance = new RegistrationInstance(newAddress) } registrationInstance.registrationNetwork = chainName - registrationInstance.registrationAddress = event.params.registration + registrationInstance.registrationAddress = event.params.daoAddress registrationInstance.daoAddress = event.params.daoAddress - registrationInstance.daoURI = event.params.daoURI + registrationInstance.daoURI = 'placeholder' - // retrieve registration info from IPFS - log.info('Fetching ipfs data for uri: {}', [event.params.daoURI]) - if (event.params.daoURI) { - const ipfsHash = event.params.daoURI.substring(7) - log.info('Fetching ipfs data for: {}', [ipfsHash]) - let ipfsData = ipfs.cat(ipfsHash) - if (ipfsData) { - log.debug('IPFS data found for : {}', [ipfsHash]) - let daoMetadata = json.fromBytes(ipfsData).toObject() - - const daoName = daoMetadata.get('name') - log.info('My name is: {}', [daoName ? daoName.toString() : 'unknown']) - const daoDescription = daoMetadata.get('description') - log.info('My description is: {}', [daoDescription && daoDescription.kind == JSONValueKind.STRING ? daoDescription.toString() : 'unknown']) - const membersURI = daoMetadata.get('membersURI') - const proposalsURI = daoMetadata.get('proposalsURI') - const governanceURI = daoMetadata.get('governanceURI') - const activityLogURI = daoMetadata.get('activityLogURI') - - registrationInstance.daoName = daoName && daoName.kind == JSONValueKind.STRING ? daoName.toString() : '' - registrationInstance.daoDescription = daoDescription && daoDescription.kind == JSONValueKind.STRING ? daoDescription.toString() : '' - registrationInstance.membersURI = membersURI && membersURI.kind == JSONValueKind.STRING ? membersURI.toString() : '' - registrationInstance.proposalsURI = proposalsURI && proposalsURI.kind == JSONValueKind.STRING ? proposalsURI.toString() : '' - registrationInstance.governanceURI = governanceURI && governanceURI.kind == JSONValueKind.STRING ? governanceURI.toString() : '' - registrationInstance.activityLogURI = activityLogURI && activityLogURI.kind == JSONValueKind.STRING ? activityLogURI.toString() : '' - registrationInstance.save() // For some reason this does not work without this additional save - } else { - log.warning('IPFS data missing for : {}', [ipfsHash]) - } - } - - log.info('Saving registration for : {}', [event.params.daoURI]) registrationInstance.save() } -export function handleNewURI(event: NewURI): void { +export function handleNewURI(event: DAOURIUpdate): void { let daoAddress = event.params.daoAddress.toHex() let daoId = daoAddress let registrationInstance = RegistrationInstance.load(daoId) diff --git a/Implementations/Subgraph/daostar/subgraph.yaml b/Implementations/Subgraph/daostar/subgraph.yaml index 616b8b6a..d12667dc 100644 --- a/Implementations/Subgraph/daostar/subgraph.yaml +++ b/Implementations/Subgraph/daostar/subgraph.yaml @@ -6,7 +6,7 @@ features: templates: - name: EIP4824Registration kind: ethereum/contract - network: mainnet + network: goerli source: abi: EIP4824Registration mapping: @@ -20,16 +20,16 @@ templates: - name: EIP4824Registration file: ./abis/EIP4824Registration.json eventHandlers: - - event: NewURI(string,address) + - event: DAOURIUpdate(address,string) handler: handleNewURI dataSources: - kind: ethereum - name: EIP4824RegistrationSummoner - network: mainnet + name: EIP4824Index + network: goerli source: - abi: EIP4824RegistrationSummoner - address: "0x37dF3fC47C1c3A2acaFd2Dad9c1C00090a8655Bc" - startBlock: 16084997 + abi: EIP4824Index + address: "0xd8f49391ba81942d40c26a50f8ca63cdca6fb3da" + startBlock: 8901481 mapping: kind: ethereum/events apiVersion: 0.0.6 @@ -38,9 +38,9 @@ dataSources: - NewRegistration - RegistrationInstance abis: - - name: EIP4824RegistrationSummoner - file: ./abis/EIP4824RegistrationSummoner.json + - name: EIP4824Index + file: ./abis/EIP4824Index.json eventHandlers: - - event: NewRegistration(indexed address,string,address) + - event: DAOURIRegistered(address) handler: handleNewRegistration file: ./src/mapping.ts From ecf8fe51bd7ce00fd1a1956ed78f74046a366a12 Mon Sep 17 00:00:00 2001 From: Isaac Patka Date: Thu, 27 Apr 2023 14:06:39 -0400 Subject: [PATCH 4/4] site --- .../build/EIP4824Index/EIP4824Index.wasm | Bin 33430 -> 33526 bytes .../Subgraph/daostar/src/mapping.ts | 21 +++++++++--------- daostar-website/src/App.js | 6 +++-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Implementations/Subgraph/daostar/build/EIP4824Index/EIP4824Index.wasm b/Implementations/Subgraph/daostar/build/EIP4824Index/EIP4824Index.wasm index 5b1ee4f982136aa257d3e32eebe8ce6f38b03df2..0534392a973f050345f40209081ea30266d1a203 100644 GIT binary patch delta 2461 zcmaJ@Z%hhA{M4bY2=XLv$mzUoUZr<%@I+tlSR7SaVzHt4DU=K2@W2rA*pqyRAG*Do(u;lz5KP`i#nr-e=fn_15?l>LaAg(9TsL~hlIham8B%?{wr5SLAX#M?aO zy9wO@fvuVbAvV)oCt*nBMRYN+2_Fzj=~5CeAcWb08RlPk%Ewo6O(NK2R$`=19FmT| zbXXW=1rP|Efv|271rYNQ1)#62L}W{3APAeNdO5;Mj4JX>MG=S@D5wx2s|(eFsLLx| z8?(#?Uqoa}u#}mJp`|N%Yo)X%k3h^)s_PnIbJf%V<#1}ex$&I1cGS>u*l;8FSoEvgXVzmVabuiGQn&-nI*OZO@T(M^q0Q5 zCU|c968J(RfNi?WQbMqTkP!j_ArS&W)g_2z1QyvzyDSW8W*R&nnq`9D^?TiOA;`;a zf!>@8(F#ph0HLhHE3{nTb0)&#i+h4tn9urkcPhL{Ooau}21MH`qRk{ipwFwl?hB2J zct{-ZR=`_V;jK$}8t}SPOL&+c;9Rh>C%PRz5Sy&XEcWy0pLt8B)p@E@y#M5jFK-NIp zyOL+O?ve|i-a{?~+oD!%JT&c#;Qi!pb?x@t4#XbUXbob=-pXtC*l`y>+qNk`gmiQo zeE|E`HVq#^>^AS;bC^!n8p@Sg?SLS(bAPCr+ameuylGgd<&H>1nXS_>_O$~u^jdX#BXnc*cJ#p*mL;B6tqTRObTR5#4jH}Pn& zyloyd$ZnxY+aSSw;D>-(x0tsMvVvHmSzC7lM4^fc{zcQx8iBo>%`|J+g4nP8;NHqN zF742AbOQlDQ!rlNp{>i$>UNVi3lK0Fmkf|cJ4`?Sicv-Ee2b<9rTzsl8N00x`7myJ3Ng77(Oj&_zdg#heqRLo}$r_ zzQFO`VK~0L6Iglh@iz0n->%Ia=#QN^78`qiI9?eRFQSXbAYZ|m!GWWJk+Hz&*vX>- b<0w>B_}n|=SmfXM+}rFCsXE!w)9(Er0Ho@w delta 2498 zcmai0ZD?Cn7(VBIq&L0&xHjEZ+I8NfX`3`jzn6ZbUuV*7ZE8Bly6PCju8kT@)4FDx zLs>igDmWx?h7QS~KL!r%AQF`cfmNxlN`GYThyBqX6$b7{gd#Er=7;aOH|g3jXW-s* z-t#`s`*q%Xavr?Lef%C5AHjR9RS0tkW1i}2H&xF~`Vf6dQr$V8? zcmz4=wWbp|C3ZDemAWYSq@@;Rz-x1Sa`Fb@&qXbW=_RIp9*hPP)g*) zl4Ty_BptBc;|NN)s{h8+Tl-e;haxA;;tOPA`nF>P>R47aBrAJqL31$ zzydrshrpuP#!D(DONA;&qxQ0Ho-7orSTTX)r9!3Df|-%cVzQ}_pD+;>gk&uiY~v7U zu9*N_0j9_z%;*VQjTbAsR9-R2GWf0lS6Fw2Rpyb*Ie<{9KyaK8{kK!wg@;v}1qXT_b0NmZOTZ zw0Qg8@U0KYp`FVtoQ)I8RrXdfYYLuhwnCYz6lg`oXyKr-VAlaC zYC!hZfdX0DuZkLwQ}QjW35j?J;88b;mXbSMu0!p-^qEB<8*Zf(dR{li{56-WqA&|4 zszox_F2hH$J&L)uY!m{Cw*ynsny|-J+4V&DM*9|gp#$J~sz6d~Vt~n9Crmh)#OWul zeYl!_<5Hn?zq;&28=Vkqqf@D&MfJONb$-;tzOx62c<6@9Z1v<|DUVVkt9cN3 z9?O_NC=w(yNzu$^c^_cX20XQTp(96xuz+X)s9^`uu!DF7lMd#ve~SlM01r+RR-SDR zIaaq+u?$-Ts;y4Z!h!RNofT0^8|>9{oviIe=rO1Rm@)$1xWkkYLinx03MDZ#+FRnC zu=83;;u@Y;c5K`BX5q+O7ppscxv{d+3Jt7bIkMSA5Q#S{Wvo49`Kp8xUp5Mu-fEN* zUpKYzrI%Ka6+v6c<=RV@WA3|&OzWVjw+oT`O>!+e>{WOMP#B#>V#AEbyXKaQStt@bVQ@OhT&6+iMC2ij4%(zxn`YxWT^c+f zr9sd%`QCCV)~*THsnctbRzZN&*64AsTe{StX|B-AUR6r!!U|1#tx{SS9@6{X8Y$M9 zHL!cg=2+E*wN7~#3#bU52?%Hk`Ep@p00A!MJv2CEmy#Zhyh1-6vPo$WAnS+p=b=7h zvP;9QcF~Z#rauD`ggoCZ@8ZEG{HdTL`}9YJxdi*zEf;980U+G6$z4S?iXu zh{!#9;rY4~*Lvi9RYSo4G$?QO$c4{jWs}ZZ2MDONp8$}*dUQMQ_QGgH%u&GZ zVy}$B+cM>RM{$gf_zt(Gmyk}$8k!;Mx2CQpLR<%eGOF09wZtd1^*+}{aaF)|DXUjk8>NJcy zqDbD(`dx(yGq9c=)B1QdAcV&z1NfJc`h@ey9|k%++Jw#Y;-~{#=#5beuA-^YIykZa z89m8WchQT-tTcSgK;L<>gsWjHP>yfRS zzA)BO5S;K&z2c9YpAOhPY{8qmEY+1<2nA0yoQ^ciM9!RQ&@N1l(#O`c%ae2WW2@PV Llq<3L(xClcmX80= diff --git a/Implementations/Subgraph/daostar/src/mapping.ts b/Implementations/Subgraph/daostar/src/mapping.ts index b190efde..06bb9ee9 100644 --- a/Implementations/Subgraph/daostar/src/mapping.ts +++ b/Implementations/Subgraph/daostar/src/mapping.ts @@ -21,24 +21,23 @@ export function handleNewRegistration(event: DAOURIRegistered): void { EIP4824Registration.create(event.params.daoAddress) let newAddress = event.params.daoAddress.toHex() registrationInstance = new RegistrationInstance(newAddress) + registrationInstance.registrationNetwork = chainName + registrationInstance.registrationAddress = event.params.daoAddress + registrationInstance.daoAddress = event.params.daoAddress + registrationInstance.daoURI = 'placeholder' + registrationInstance.save() } - - registrationInstance.registrationNetwork = chainName - registrationInstance.registrationAddress = event.params.daoAddress - registrationInstance.daoAddress = event.params.daoAddress - registrationInstance.daoURI = 'placeholder' - - registrationInstance.save() } export function handleNewURI(event: DAOURIUpdate): void { - let daoAddress = event.params.daoAddress.toHex() - let daoId = daoAddress - let registrationInstance = RegistrationInstance.load(daoId) + let registrationAddress = event.address.toHex() + let registrationInstance = RegistrationInstance.load(registrationAddress) - if (!registrationInstance) log.warning('Invalid instance', []) + if (!registrationInstance) log.warning('Invalid Registration: {}', [registrationAddress]) else { + registrationInstance.daoAddress = event.params.daoAddress if (event.params.daoURI) { + registrationInstance.daoURI = event.params.daoURI const ipfsHash = event.params.daoURI.substring(7) log.info('Fetching ipfs data for: {}', [ipfsHash]) let ipfsData = ipfs.cat(ipfsHash) diff --git a/daostar-website/src/App.js b/daostar-website/src/App.js index ce3df763..612e9050 100644 --- a/daostar-website/src/App.js +++ b/daostar-website/src/App.js @@ -27,11 +27,13 @@ function App() { const { loading, error, data: mainnetData } = useQuery(queries.REGISTRATIONS, { context: { apiName: 'mainnet' }, variables: { id: 'mainnet' } }) const goerliRes = useQuery(queries.REGISTRATIONS, { context: { apiName: 'goerli' }, variables: { id: 'goerli' } }) const { loading: goerliLoading, error: goerliError, data: goerliData } = goerliRes - // console.log({ mainnetData, goerliData }) + console.log({ mainnetData, goerliData }) if (error || goerliError) return 'error' if (loading || goerliLoading) return 'loading...' - const registrationInstances = mainnetData.registrationNetwork.registrations.concat(goerliData.registrationNetwork.registrations) + const mainnetRegistrations = mainnetData?.registrationNetwork?.registrations || [] + const goerliRegistrations = goerliData?.registrationNetwork?.registrations || [] + const registrationInstances = mainnetRegistrations.concat(goerliRegistrations) console.log({ registrationInstances })